sql2000中COLUMNS_UPDATED()的问题
在触发器中可以用COLUMNS_UPDATED()来判断哪些列更新了 
 它还有分前八列内和八列以上更新的情况   
 八列内:IF   (COLUMNS_UPDATED()   &   14)   >    0 
 查看2      3      4列是否更新 
 怎么理解????   
 是不是IF   (COLUMNS_UPDATED()   &   14)   =   14   也可以???     
 八列以上:如更新2      3      9列 
 IF   (   (SUBSTRING(COLUMNS_UPDATED(),1,1)=power(2,(3-1)) 
                   +   power(2,(5-1)))    
                   AND   (SUBSTRING(COLUMNS_UPDATED()(),2,1)=power(2,(1-1))) 
                   )      
 怎么理解????希望帮小弟讲解详细点      谢谢   
 希望大哥们不吝赐教!!!谢谢 
------解决方案--------------------八列内:IF (COLUMNS_UPDATED() & 14) >  0 表示 2 3 4 列其中至少有一列更新了     
 IF (COLUMNS_UPDATED() & 14) = 14 表示2 3 4 列都更新了
------解决方案--------------------如果一个表超过8个列,COLUMNS_UPDATED()会返回多个字节 一个字节是8位 
 SUBSTRING(COLUMNS_UPDATED(),1,1) 是获取第一个字节 可以判断1-8列是否更新 
 SUBSTRING(COLUMNS_UPDATED(),2,1) 是获取第二个字节 可以判断9-16列是否更新 
 SUBSTRING(COLUMNS_UPDATED(),3,1) 是获取第三个字节 可以判断17-24列是否更新
------解决方案--------------------2 3 4列对应的数是14 
 14是怎么得来的??? 
 ---- 
 14 = power(2,1)+power(2,2)+power(2,3)     
 我要是5 6 8列对应的又是什么值????? 
 ---- 
 power(2,4)+power(2,5)+power(2,7) = 176
------解决方案--------------------14的二进制值为 00001110
------解决方案--------------------我晕倒
------解决方案--------------------一个字节是8位,所以2 3 4位对应00001110 
 9-16 列对应第二个字节 11列更新则 000000100 
 17-24列对应第三个字节 18列更新则 000000010 
 25-32列对应第四个字节 25列更新则 000000001 
 酱紫吧