我正在咬紧牙关并了解触发器以支持我的应用程序的要求。我已经创建了一个测试触发器(在测试表上),如何添加标准,以便UPDATE语句只影响那些插入的记录
编辑 - 我在其他地方发现了一个链接到inserted
表的示例,它似乎有效,只是想与人们进行一次健全检查,以确保没有任何明显错误,因为我不想要搞砸了!
ALTER TRIGGER ztblTest_INSERT
ON we_ci_db.dbo.ztblTest
AFTER INSERT
AS
BEGIN
SET NOCOUNT ON;
UPDATE ztblTest
SET TestFieldB=we_ci_db.dbo.ztblTest.TestFieldA
WHERE TestID IN (SELECT DISTINCT TestID FROM inserted)
END
GO
答案 0 :(得分:2)
有一个名为inserted
的插入/更新记录的临时表。这应该与您要更新的表具有相同的结构,因此您可以根据需要以任何标准加入(或在where子句中使用,如您在问题中提到的那样)。
虽然与您的问题没有直接关系,因为您的触发器只关心插入,但还有一个临时表,用于在触发器期间使用已删除的记录,称为deleted
。
在MSDN article上有一些使用这些临时表的例子。