SQL Server语句说明

时间:2020-03-04 22:22:28

标签: sql sql-server

请解释以下陈述的含义。这是局部变量的赋值,但我不明白inserteddeleted是什么意思?

select @ID = ID from inserted 

select @co_ID = co_ID from deleted 

谢谢

2 个答案:

答案 0 :(得分:2)

INSERTED和DELETED是SQL Server创建的临时内存驻留表,用于DML触发器内的使用(或滥用)。

插入和更新将新行复制到INSERTED, 删除和更新会将旧行复制到DELETED。

该代码似乎正在尝试审核对一行数据的更改-但除非代码路径中有其他内容保证只更新一行,否则它将失败。

答案 1 :(得分:0)

这些语句意味着您在SQL Server中编写了不安全的触发器。触发器假定仅更新了一行。这是不安全的,因为SQL Server根据行的调用触发器。

如果有一行,则为参数@ID@co_ID分配该行的值。如果有多个行要更新,则将任意行(可能不同)中的值分配给参数。

相关问题