帮助了解插入和删除的表SQL Server

时间:2011-02-14 20:19:50

标签: sql sql-server

如果运行INSERT INTO语句触发INSERT AFTER触发器。插入和删除的对象在触发器中表示哪些表/行?例如,

INSERT INTO Person.person (personID, name) VALUES (1, 'robert')

CREATE TRIGGER myTrigger  
ON Person.person  
AFTER INSERT AS  
BEGIN  
 insert into Person.PersonMovies (personID, movieID)  
 select inserted.personID  from inserted   _--i know the code is incomplete, but i'm curious only about the inserted part._  
END  

我对插入的表所持有的记录感到困惑。它是插入语句中触发触发器或Person.PersonMovies表的记录吗?

4 个答案:

答案 0 :(得分:2)

是的,插入/删除的表使您的触发器代码可以访问由引发(触发)触发器的语句更改的记录。还要记住,您的语句可能影响了多行,因此删除或插入的表可能有多个记录。

答案 1 :(得分:1)

伪表inserteddeleted中的行基于您ON子句中定义的表。

答案 2 :(得分:0)

Inserted表保存原始Insert语句中导致触发器触发的行。

另见this MSDN article

答案 3 :(得分:0)

插入和删除的pseudotables为触发触发器的语句创建或删除的表中的每一行保留一条记录。对于更新,已删除的表包含旧版本的记录,而插入的表包含新的记录。伪表的模式与实际表匹配。