SQL Server的触发器用法

来源:互联网 发布:floyd算法 路径 编辑:程序博客网 时间:2024/06/15 07:54

DML( 数据操纵语言 Data Manipulation Language)触发器

一、创建触发器

create trigger (触发器名字)

on (表名)

for | after | instead of  insert | update | delete

as

[if ......]

begin

[SQL 语句]    [rollback transaction] 

end   


说明:

instead of 即用 as后的SQL语句操作 来 代替对表的DML操作; after即在对表的DML操作执行后 执行as后的SQL语句;for等于对表的DML操作执行as后的SQL语句。

特别注意 rollback transaction,即回滚事务,不执行相应DML操作,保持原来的状态。


二、更改触发器

alter trigger (触发器名字)

on (表名)

for | after | instead of  insert | update | delete

as

[if ......]

begin

[SQL 语句]    [rollback transaction] 

end  


三、删除触发器

drop trigger (触发器名字)


四、虚拟表inserted和deleted

对表的操作

Inserted逻辑表

Deleted逻辑表

增加记录(insert)

存放增加的记录

删除记录(delete)

存放被删除的记录

修改记录(update)

存放更新后的记录

存放更新前的记录


触发器中可直接引用inserted和deleted,就当成是平常建立的表。


五、查看数据库中已存在的触发器

select * from sysobjects where xtype='TR';


六、查看已存在的触发器具体的代码

exec sp_helptext (触发器名字)


参考了http://www.cnblogs.com/hoojo/archive/2011/07/20/2111316.html

0 0
原创粉丝点击