请解释以下陈述的含义。这是局部变量的赋值,但我不明白inserted
或deleted
是什么意思?
select @ID = ID from inserted
select @co_ID = co_ID from deleted
谢谢
答案 0 :(得分:2)
INSERTED和DELETED是SQL Server创建的临时内存驻留表,用于DML触发器内的使用(或滥用)。
插入和更新将新行复制到INSERTED, 删除和更新会将旧行复制到DELETED。
该代码似乎正在尝试审核对一行数据的更改-但除非代码路径中有其他内容保证只更新一行,否则它将失败。
答案 1 :(得分:0)
这些语句意味着您在SQL Server中编写了不安全的触发器。触发器假定仅更新了一行。这是不安全的,因为SQL Server根据行的组调用触发器。
如果有一行,则为参数@ID
和@co_ID
分配该行的值。如果有多个行要更新,则将任意行(可能不同)中的值分配给参数。