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
链接: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
相关文章推荐
- SQL 数据类型
- SQL Server——数据类型
- ORACLE PL/SQL编程之八: 把触发器说透
- Redis主从配置
- 02Redis入门指南笔记(基本数据类型)
- Oracle之trunc函数使用
- Oracle之一份标准日历表的构建
- Oracle之第一天和最后一天
- sql 根据经纬度求距离
- 关于MongoDB的group用法
- Mysql选择合适的数据类型
- Mysql选择合适的存储引擎
- 安装oracle11g时,Enterprise Manager的配置
- SQLServer 定位CPU使用较高的用户和SQL
- Mysql存储过程
- MongoDB使用记录
- redis 类
- MongoDB shell原子性更新修改器的应用
- iOS开发数据库篇—FMDB简单介绍
- sqlserver 内置函数