在SQL Server触发器中如何判断哪些列被更改
2009-10-20 14:51
344 查看
在触发器中判断哪些列被更改有以下两种方法:
第一、可以使用Update()函数 ,语法:Update(列名);返回值:bool值。如果该列被更新则为True,否则为False。该函数比较方便也比较实用。
第二、使用COLUMNS_UPDATED()函数。 语法:COLUMNS_UPDATED ( ) ;返回值:varbinary
1.八列以内的表。可以直接使用 COLUMNS_UPDATED()函数来判断。比如:要测试一下第一列有没有被修改,则可以用COLUMNS_UPDATED()& 1=1来判断。 如果为True,则该列被更新;否则未被更新。要测试第五列,则可用 COLUMNS_UPDATED()& 16=16来判断。
2.八列以上的表。要测试第一列被更新用 substring(COLUMNS_UPDATED(),1,1) & 1=1,如果测试第11列,则用 substring(COLUMNS_UPDATED(),2,1) & 4=4。以此类推。
第一、可以使用Update()函数 ,语法:Update(列名);返回值:bool值。如果该列被更新则为True,否则为False。该函数比较方便也比较实用。
第二、使用COLUMNS_UPDATED()函数。 语法:COLUMNS_UPDATED ( ) ;返回值:varbinary
1.八列以内的表。可以直接使用 COLUMNS_UPDATED()函数来判断。比如:要测试一下第一列有没有被修改,则可以用COLUMNS_UPDATED()& 1=1来判断。 如果为True,则该列被更新;否则未被更新。要测试第五列,则可用 COLUMNS_UPDATED()& 16=16来判断。
2.八列以上的表。要测试第一列被更新用 substring(COLUMNS_UPDATED(),1,1) & 1=1,如果测试第11列,则用 substring(COLUMNS_UPDATED(),2,1) & 4=4。以此类推。
相关文章推荐
- 在SQL Server触发器中如何判断哪些列被更改(还没试过)
- SQL Server 如何生成更改脚本
- 如何更改SQL Server 2008 登陆验证方式
- 转:如何判断服务器被DDOS了?服务器被攻击的解决办法有哪些?
- 如何更改SQL Server 2008 登陆验证方式
- SQL Server中递归触发器中使用游标如何设置
- Java虚拟机如何判断对象已死?(哪些内存需要回收)
- sql server更改端口后如何连接
- 如何使用SQL Server INSTEAD-OF触发器
- 如何使用SQL Server 2005 INSTEAD-OF触发器
- 如何查看SQL Server 2005使用with encryption 加密的存储过程或触发器,函数
- 如何写查看数据库中有哪些触发器、视图、表
- 如何更改sql server登陆密码
- Sql Server中如何判断表或者数据库的存在
- SQL SERVER如何判断某个字段包含大写字母
- 如何更改SQL Server 2008 登陆验证方式
- sql server如何判断数据库是否存在
- 如何查看当前数据库中有哪些触发器
- [转]sql server 2000/2005 判断存储过程、触发器、视图是否存在并删除
- SQL SERVER如何判断某个字段包含大写字母