sql-server - 如何在sql server中获取更新的列名

标签 sql-server triggers

我有一个名为 user 的表,其中包含 FirstName、LastName、Age、Location、City、Education 等列

我想做的是

在用户更新他的信息后,我想跟踪用户更新了哪些列。不是更新的行,而是更新的特定行中的确切列。

我创建了一个更新触发器,但它没有给出确切的结果。

纳克斯,

世斌

最佳答案

DECLARE @idTable INT
SELECT @idTable = T.id FROM sysobjects P JOIN sysobjects T ON P.parent_obj = T.id WHERE P.id = @@procid
DECLARE @Columns_Updated VARCHAR(50)

SELECT  @Columns_Updated = ISNULL(@Columns_Updated + ', ', '') + name
FROM    syscolumns
WHERE   id = @idTable
AND     CONVERT(VARBINARY,REVERSE(COLUMNS_UPDATED())) & POWER(CONVERT(BIGINT, 2), colorder - 1)  > 0

关于sql-server - 如何在sql server中获取更新的列名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8049810/

相关文章:

sql - 查询以选择并组合表中的最高值和最低值

sql - 删除重复行但保留最早的行(按日期标准) - SQL Server

mysql - 插入触发器之前的 SQL

sql - PostgreSQL 多个触发器和函数

sql - 对于 XML 长度限制

sql - T-SQL 在给定日期范围内的同一天查找来自同一客户的多个订单

WPF在动画结束时触发命令

sql - 消息 16929,游标为只读 - 为什么?

sql-server - 在触发器中更新同一个表

sql-server - MSSQL服务器连接超时groovy grails应用程序