SQL Server 触发器
触发器是一种特殊类型的存储过程,触发器主要是通过事件进行触发而被执行的,而存储过程可以通过名字直接调用。
对某一个表进行UPDATE , INSERT, DELETE 时,SQL Server会自动执行自定义的触发器。
触发器存在的作用
- 实现由主键和外键所不能保证的参照完整性和数据一致性
- 强化约束,能实现比CHECK语句更为复杂的约束
- 跟踪变化,触发器可以侦测数据库内的操作,从而不允许数据库不经许可的更新和变化
- 级联运行,触发器可以侦测数据库内的操作,并自动级联影响整个数据库的内容
- 存储过程的调用
创建触发器
-- 创建触发器
-- 创建一个DELETE类型的触发器
create trigger tr_employee ON employee
for delete
as
declare @msg varchar(50)
select @msg = STR(@@ROWCOUNT)+'个员工被删除'
select @msg
return ;
调用触发器
相应的SQL语句执行时,会自动调用触发器
delete from employee
where employee_name='东方牧'
-- 结果
-- 1个员工被删除
删除触发器
drop trigger tr_employee
修改触发器
alter trigger tr_employee on employee
for insert -- 创建一个INSERT类型的触发器
as
declare @msg varchar(50)
select @msg = STR(@@ROWCOUNT)+'个员工被插入'
select @msg
return