我的表有90列。
如何确定哪些列已更新?
通过
UPDATE(@COLUMN_NAME)
[CURSOR中的@ COLUMN_NAME]
答案 0 :(得分:0)
您可以根据表格的UPDATE
语句创建TRIGGER
来确定这一点。然后可以在TRIGGER
定义中使用COLUMNS_UPDATED
函数来确定哪些列已更新。
COLUMNS_UPDATED
函数返回VARBINARY
位模式,指示已插入或更新的表或视图中的列。
例如,如果第一列已更新,则条件COLUMNS_UPDATED()&1
为true。如果第二列已更新,则COLUMNS_UPDATED()&2
为真。如果第三列已更新,则COLUMNS_UPDATED()&4
为真,依此类推。
您可以通过组合位模式来测试是否已更新多个列。例如,如果第1列和第2列都已更新,则条件COLUMNS_UPDATED()&3
为真。二进制形式0001 | 0010
等于0011
,十进制形式的等效形式为1 | 2
等于' 3'。
答案 1 :(得分:0)
第2栏更新: COLUMNS_UPDATED():0x02000000000000000000
0x02000000000000000000& 2 - > 0
SUBSTRING(0x02000000000000000000,1,1):0x02
0x02& 1:1
0x02& 2:2
0x02& 3:3