SqlServer Trigger insert update delete
来源:互联网 发布:微电影片头素材知乎 编辑:程序博客网 时间:2024/03/28 21:31
本文介绍下,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,UserName,logincode,[PassWord],'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)
- Sql Server Trigger 的使用(Insert ,Update,Delete...)
- SQLServer添加UPDATE回滚日志(update/delete/insert)
- Update/insert trigger
- SQLSERVER触发器触发INSERT,UPDATE,DELETE三种状态
- SQLSERVER触发器内INSERT,UPDATE,DELETE三种状态
- SQLSERVER触发器内INSERT,UPDATE,DELETE三种状态
- [SQL Server] TRIGGER 触发器获得insert, delete, update行的信息
- Insert Update Delete Select
- Insert , Update , Delete 触发器
- Insert,Update,Delete操作
- insert、delete、update、replace
- INSERT,UPDATE,DELETE时不写日志
- SSIS 实现update,delete,insert
- 數據庫訪問類(Query,Insert,Update,Delete)
- returning into(update,delete,insert)
- LINQ Insert/Update/Delete操作
- Anatomy of a function
- 用命令行启动服务及xp服务详解
- chef 安装
- jsp 自定义标签
- Linux下双屏显示设置
- SqlServer Trigger insert update delete
- sqlserver 自定义函数随机产生指定范围的随机数
- python logging model
- 以太网帧最小字节数以及以太网碰撞
- Eclipse上GIT插件EGIT使用手册
- Android中PopupWindow的用法(位置、动画、焦点)
- 使用命令行配置启动windows服务
- 唠唠叨叨又七夕
- IIC驱动程序之完善篇