我能够找出在表的触发器中更新的列。但是触发器有点大,我想尽可能地减小它的大小。所以现在,我想创建一个通用存储过程并从存储过程中找出更新的列。
这是找出更新列的 SQL 查询
SELECT @idTable = T.id
FROM sysobjects P JOIN sysobjects T ON P.parent_obj = T.id
WHERE P.id = @@PROCID
---- Get COLUMNS_UPDATED if update
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
有人可以帮助我了解我应该做些什么来实现我的目标