在SQL Server触发器中如何判断哪些列被更改(还没试过)

在触发器中判断哪些列被更改有以下两种方法:

  第一、可以使用Update()函数 ,语法:Update(列名);返回值:bool值。如果该列被更新则为True,否则为False。该函数比较方便也比较实用。

  第二、使用COLUMNS_UPDATED()函数。 语法:COLUMNS_UPDATED ( ) ;返回值:varbinary

      1.八列以内的表。可以直接使用 COLUMNS_UPDATED()函数来判断。比如:要测试一下第一列有没有被修改,则可以用COLUMNS_UPDATED()& 1=1来判断。                                     如果为True,则该列被更新;否则未被更新。要测试第五列,则可用 COLUMNS_UPDATED()& 16=16来判断。

      2.八列以上的表。要测试第一列被更新用 <!--[endif]-->substring(COLUMNS_UPDATED(),1,1) & 1=1,如果测试第11列,则用 <!--[endif]-->substring(COLUMNS_UPDATED(),2,1) & 4=4。以此类推。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值