【发布时间】:2021-02-18 22:07:43
【问题描述】:
我有以下 SQL Server 触发器,我想执行以下操作:
- 在
INSERT上,将Documents中的新行保存到ArchivedDocuments - 在
UPDATE上,保存新的行修订如果WordCount或PageCount或ContributorCount已从当前值更改为UPDATE
我如何做到这一点?
我当前的触发器只是在每个INSERT 或UPDATE 之后保存到ArchivedDocument。
编辑:Id 是文档表的主键。 DocumentId 是引用 Document.Id 的外键。
CREATE TRIGGER [TRG__Documents]
ON [Documents]
AFTER INSERT, UPDATE
AS
BEGIN
SET NOCOUNT ON;
DECLARE @now datetimeoffset = sysdatetimeoffset();
INSERT INTO [DocumentRevisions] ([DocumentId], [Time], [WordCount], [PageCount], [ContributorCount])
SELECT
[inserted].[Id],
@now,
[inserted].[WordCount],
[inserted].[PageCount],
[inserted].[ContributorCount]
FROM
[inserted]
END
【问题讨论】:
标签: sql sql-server triggers