为什么我可以使用此选择:
SELECT 1 FROM INSERTED
进入触发器,但不像另一个选择那样运行?
我收到了这个错误:
Msg 208,Level 16,State 1,Line 1
无效的对象名称“INSERTED”。
它适用于此声明(在触发器内):
IF EXISTS(SELECT 1 FROM INSERTED) AND
NOT EXISTS(SELECT 1 FROM DELETED)
BEGIN
-- AFTER INSERT
UPDATE VEIC
SET
VEIC.FLAG = 'I'
FROM
DBVEICULO VEIC
INNER JOIN INSERTED INS ON INS.ID_VEICULO = VEIC.ID_VEICULO
触发器> http://pastebin.com/9Dh4TUPc
答案 0 :(得分:2)
As per the documentation - Create Trigger (Transact-SQL):
DML触发器使用已删除和插入的逻辑(概念)表。它们在结构上类似于定义触发器的表,即尝试用户操作的表。已删除和已插入的表包含可由用户操作更改的行的旧值或新值。例如,要检索已删除表中的所有值,请使用:
因此,两个表INSERTED
和DELETED
仅存在于触发器的上下文中。