sql-server-2005 - 触发器中插入/更新行的标识

标签 sql-server-2005 tsql

我有以下触发器,但需要找到行的标识,所以我不更新表中的所有记录。如何获得受影响行的身份?

BEGIN
  UPDATE tb_Division SET  LastModified = GetDate() WHERE "id of inserted/updated row"
END

最佳答案

由于 MS SQL Server 中的触发器不区分单记录和多记录操作,因此您应该使用 INSERTED 伪表 JOIN 表或使用子选择:

UPDATE tb_Division
SET LastModified = GETDATE()
WHERE id IN (SELECT id FROM INSERTED)

id 是表的主键列。

关于sql-server-2005 - 触发器中插入/更新行的标识,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3183703/

相关文章:

sql - FOR 和 AFTER 触发器之间的区别?

visual-studio-2008 - 如何让 Visual Studio 2008 在不安装 SQL Business Intelligence Development Studio 2005 的情况下编辑 SSRS 2005 报表项目?

sql - 从重复行中选择一行

sql-server-2005 - Sql server 2005 中的分析函数

sql - 有没有比 SQL 存储过程更好的方法?

sql - 如何从SQL Server Management Studio中的表生成CRUD存储过程

sql-server - 我在 Microsoft Visio 中有一个数据库图表,如何将它导入到 Sql Server 2005 中?

TSQL 选择最大值

sql-server - 将包含子查询的 T-SQL 查询重写为使用连接

c# - 使用 C# 将大量或行写入 mssql 数据库