您的位置:首页 > 数据库

SQL Server系列(8) -- 触发器

2015-12-03 13:25 302 查看
学习视频:

链接:http://pan.baidu.com/s/1qWmumeg 密码:ehq3

触发器是一种特殊类型的存储过程

一个操作可以调用多个触发器

--创建"插入"触发器

create trigger trigger_insert on 表123 for insert as

begin

print '”插入触发器“被调用'

end

--调用“插入”触发器

insert into 表123(姓名,年龄) values('小吴',34)

--创建"修改"触发器

create trigger trigger_update on 表123 for update as

begin

print '“修改”触发器被调用'

end

--调用“修改“触发器

update 表123 set 年龄=35 where 姓名='小吴'

--创建”删除“触发器

create trigger trigger_delete on 表123 for delete as

begin

print '”删除“触发器被调用'

end

--调用”删除“触发器

delete from 表123 where 姓名='小吴'

--定义被调用顺序

sp_settriggerorder @triggername='test2',@order='first',@stmttype='update'

--取消修改的顺序

sp_settriggerorder @triggername='test2',@order='none',@stmttype='update'

--将顺序定义为最后

sp_settriggerorder @triggername='test1',@order='last',@stmttype='update'

--创建替代触发器

create trigger test_instead on 表123 instead of delete as

begin

print '替代触发器被调用'

end

--向一个表中插入一条记录的同时利用替代触发器向另一个表中也插入一条记录

create trigger test_insteadA on 表123 for insert as

begin

insert into 表234(姓名,年龄) values('xiaowei',23)

end

--调用

insert into 表123(姓名,年龄) values('hehehe',39)

select *from 表123

select *from 表234

--修改触发器

alter trigger [dbo].[trigger_instead] on [dbo].[表123] instead of insert as

begin

update 表234 set 年龄=38 where 姓名='小豆子'

update 表234 set 年龄=25 where 姓名='小崽子'

end

--调用触发器

insert into 表123(姓名,年龄) values ('小钱',24)

--删除触发器

drop trigger testtriggerC

--修改触发器

alter trigger trigger_delete on 表123 for insert as

begin

print '修改后的触发器被调用'

end

--调用

insert into 表123(姓名,年龄) values('新人',15)

--查看触发器基本信息

exec sp_help trigger_delete

--查看创建触发器时所用的代码

exec sp_helptext trigger_delete
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: