0

我咬紧牙关,开始了解触发器以支持我的应用程序的要求。我已经创建了一个测试触发器(在测试表上),如何添加条件以便 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
4

1 回答 1

2

有一个用于插入/更新记录的临时表,称为inserted. 这应该与您正在更新的表具有相同的结构,因此您可以按照您需要的任何标准加入它(或在 where 子句中使用,正如您在问题中提到的那样)。

尽管与您的问题没有直接关系,因为您的触发器只关心插入,但还有一个用于在触发器期间使用的已删除记录的临时表,称为deleted.

在这篇MSDN 文章中有一些使用这些临时表的示例。

于 2012-09-05T10:48:09.950 回答