
本文介绍下,sql Trigger的注意点。
基本格式如下
--drop trigger JhtopLMUserTrigger
create trigger JhtopLMUserTrigger
on Users for insert,update
as
DECLARE @bits int;
--SET @bits = ColUMNS_UPDATED();
--IF ((@bits & 1)>0 or (@bits & 2)>0)
IF (UPDATE(username) or update([password]) or update(logincode))
begin
insert into TemptableForJhtopLMUser select UserID,Username,logincode,[PassWord],'U' from inserted
--insert into TemptableForJhtopLMUser select UserID,'U' from deleted
end
其中用得比较多的有insert与delete比较好判断。只用区分inserted与deleted是否有数据集就OK了。
update比较难判断,应该MS sql的update的机制是先删除,在插入的方式执行的update *** 作。
捕获起来不是那么方便。执行一条update 在触发器里面的 inserted与deleted的数据集中都会有数据。
那么在使用 columns_update()函数可以来监听更新的列信息。
比如(@bits & 1)>0 用来监听第一列更新状态,(@bits & 2)>0 第二列,(@bits & 4)>0 第三列,(@bits & 8)>0 第四列 依次类推。
依次是2的0次方,1次方,2次方,3次方等等。这种用起来比较复杂。
还有一种,update() 来判断列的更新情况。如上面标红的UPDATE(username) ,username为列名,直接来判断列的更新情况,比较简便。
总结以上是内存溢出为你收集整理的SqlServer Trigger insert update delete全部内容,希望文章能够帮你解决SqlServer Trigger insert update delete所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)