sql-server - 包含更新触发器的更新行的表应该是什么

标签 sql-server sql-server-2008 triggers

不久前,我读了有关 SQL Server 中的触发器的文章,它说我可以使用逻辑表“已更新”来更新行...但我收到了错误:

System.Data.SqlClient.SqlException: Invalid object name 'Updated'.

经过一段时间的谷歌,我发现了一些更多的帖子,说只有 2 个可用的逻辑表是:插入和删除...

我很困惑...我应该使用什么,因为我的触发器依赖于包含更新行的更新表,并使用它插入到另一个表或具有新 PK 的同一表...

非常感谢

最佳答案

这两个虚拟表称为 Inserted(在 INSERTUPDATE 触发器中可用)和 已删除(在DELETEUPDATE触发器中可用)。

SQL Server 触发器中没有已更新虚拟表。

对于 FOR UPDATE 触发器,Deleted 表包含旧值,而 Inserted 表包含新值。

马克

关于sql-server - 包含更新触发器的更新行的表应该是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1935674/

相关文章:

c# - 如何使用DataContext.ExecuteCommand 获取执行后的存储过程返回值?

sql-server - 如何保存现有触发器中的更改?

MySql 触发器 INSERT...ON DUPLICATE KEY UPDATE 无法识别列

c# - 对邻接列表(具有 ParentId 列的表)进行 CRUD 操作的分层网格

sql - "ALTER ROLE db_owner ADD MEMBER A"不工作

c# - 将 Linq to Sql 查询转换为更好的 sql

mysql - 防止列的快速更新

javascript - 如何对登录用户隐藏登录字段

c# - 从 SQL Server 2008 数据库中选择列中的所有值?

sql - 在没有匹配项的情况下显示结果 - SQL Server 2008