我的更新查询不会触发更新后触发

问题描述:

如果我这样写:我的更新查询不会触发更新后触发

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

你可以发布你的触发器的代码? – 2010-12-09 00:41:47

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

你必须自己采取行动在INSERTED伪表中的行上。

+0

我想我理解这个问题,但不是你的解决方案。你能详细说明吗? – Malartre 2010-12-09 00:45:41