标签:
一 简介
触发器是一种特殊的存储过程,在对表进行插入、更新、删除的时候会触发执行。触发器一般用在check约束或者一些后续事务逻辑的处理。触发器和普通的存储过程的区别是:触发器是当对某一个表进行操作。诸如:update、insert、delete这些操作的时候,系统会自动调用执行该表上对应的触发器。所以触发器可以用来实现对表实施复杂的完整性约束。
二 相关参数
触发器触发的时候两个特殊的表:插入表(instered表)和删除表(deleted表)。这两张表的结构与被改触发器应用的表的结构相同,存储的数据是要进行操作的数据,当触发器完成工作后,这两张表就会被删除。Inserted表的数据是插入或是修改后的数据,而deleted表的数据是更新前的或是删除的数据。
三 Instead of 和 After触发器
SQL Server2000提供了两种触发器:Instead of 和After 触发器。这两种触发器的差别在于他们被激活的同:
Instead of触发器用于替代引起触发器执行的T-SQL语句。除表之外,Instead of 触发器也可以用于视图,用来扩展视图可以支持的更新操作。
After触发器在一个Insert,Update或Deleted语句之后执行,进行约束检查等动作都在After触发器被激活之前发生。After触发器只能用于表。
一个表或视图的每一个修改动作(insert,update和delete)都可以有一个instead of 触发器,一个表的每个修改动作都可以有多个After触发器。
四 触发器的添加,修改,删除,查看操作
4.1 添加创建语法
create trigger trigger_name
on {table_name | view_name}
{for | After | Instead of }
[ insert, update,delete ]
as
sql_statement
4.2 修改语法
alter trigger trigger_name--类似于修改表结构
4.3 删除语法
drop trigger trigger_name
4.4 查看触发器
select * from sys.triggers
select * from sysobjects where xtype=‘TR‘
---- 查看单个触发器
exec sp_helptext ‘触发器名‘
五 触发器的简单实例
Create trigger [dbo].[tri_deletemember]
on [dbo].[Member]
for delete
as
declare @ID VARCHAR(150)
select @ID=ID from deleted
delete from MemCount where ID=@ID
delete from MemMoney where @ID=@ID
标签:
原文地址:http://www.cnblogs.com/zoood/p/5773482.html