我的更新查询不会触发AFTER UPDATE Trigger

时间:2010-12-09 00:33:18

标签: sql sql-server tsql

如果我写这个:

update School set Name = Name where Id = 733021

我的触发器声明像这样工作:

[dbo].[SchoolUpdateSomething] ON
[dbo].[School] AFTER INSERT, UPDATE
AS
DECLARE @N int, @SchoolType nvarchar(255)

但如果我这样做

update School set Name = Name

它不会触发所有行的触发器。为什么呢?

我在更新行时也看到了同样的问题,例如通过更新另一个表中的学校名称来命名:

UPDATE School
   SET Name = usl.Name
FROM School s INNER JOIN UpdatedSchoolList usl
   ON s.Id = usl.Id COLLATE DATABASE_DEFAULT 

卡尔

1 个答案:

答案 0 :(得分:1)

http://bytes.com/topic/sql-server/answers/80432-statement-level-vs-row-level-triggers

您必须自己对INSERTED伪表中的行执行操作。