SQL触发器实例(上)
1 --1.) 创建测试用的表(testTable) 2 if exists (select * from sysobjects where name='testTable') 3 drop table testTable 4 GO 5 Create Table testTable 6 ( 7 testField varchar(50) 8 ) 9 10 select * from testTable 11 12 13 14 --2.) 创建基于表(testTable)的触发器(testTrigger) 15 IF EXISTS (Select name FROM sysobjects Where name = 'testTrigger' AND type = 'TR') 16 Drop TRIGGER testTrigger 17 GO 18 Create Trigger testTrigger 19 ON testTable 20 for Insert,Delete,Update 21 AS 22 if exists(select * from inserted) 23 if exists(select * from deleted) 24 print '...更新' 25 else 26 print '...插入' 27 else 28 if exists(select * from deleted) 29 print '...删除' 30 Go 31 32 33 --.) 操作testTable表,测试触发器testTrigger 34 --分别执行Insert Into语句,Update语句,Delete语句,看看效果 35 Insert Into testTable values ('testContent!') 36 37 Update testTable Set testField = 'UpdateContent' 38 39 Delete From testTable 40 41 select * from testTable 42 43 44 --用到的功能有: 45 --1.如果我更改了学生的学号,我希望他的借书记录仍然与这个学生相关(也就是同时更改借书记录表的学号); 46 --2.如果该学生已经毕业,我希望删除他的学号的同时,也删除它的借书记录,等等。 47 48 --这时候可以用到触发器。对于需求1,创建一个Update触发器: 49 50 Create Trigger truStudent 51 52 On student --在Student表中创建触发器 53 instead of Update --为什么事件触发 54 As --事件触发后所要做的事情 55 if Update(stuID) 56 begin 57 58 Update borrow 59 Set stuID=i.stuID 60 From borrow as br , Deleted as d ,Inserted as i --Deleted和Inserted临时表 61 Where br.stuID=d.stuID 62 63 end 64 65 drop trigger truStudent 66 UPDATE student set stuID='1006' WHERE stuID='1005' 67 68 69 Create trigger trdStudent 70 On Student 71 instead of Delete 72 As 73 Delete Borrow 74 From Borrow as br , Deleted as d Where br.StuID=d.stuID 75 76 drop trigger trdStudent 77 delete FROM student WHERE stuID='1004' 78 79 disable trigger trdStudent on Student 80 81 select * from book 82 select * from borrow 83 select * from student 84 85 86 --创建触发器(对删除表的约束) 87 create trigger droptabel 88 on database 89 for drop_table 90 as 91 print'删除表吗?' 92 print'不能删除表' 93 rollback transaction 94 go 95 96 drop table students 97 disable trigger droptabel on database --关闭触发器 98 enable trigger droptabel on database 99 100 101 102 103 104 CREATE TABLE students --学生信息表 105 ( 106 stuID CHAR(10) primary key, --学生编号 107 stuName CHAR(10) NOT NULL , --学生名称 108 major CHAR(50) NOT NULL --专业 109 ) 110 GO 111 112 113 CREATE TABLE borrowS --借书表 114 ( 115 borrowID CHAR(10) primary key, --借书编号 116 stuID CHAR(10) NOT NULL, --学生编号 117 BID CHAR(10) NOT NULL,--图书编号 118 T_time datetime NOT NULL, --借出日期 119 B_time datetime --归还日期 120 ) 121 GO 122 123 SElect * from students 124 select * from borrows 125 126 Create Trigger truStudents 127 128 On students --在Student表中创建触发器 129 for Update --为什么事件触发 130 As --事件触发后所要做的事情 131 if Update(stuID) 132 begin 133 134 Update borrows 135 Set stuID=i.stuID 136 From borrows as br , Deleted as d ,Inserted as i --Deleted和Inserted临时表 137 Where br.stuID=d.stuID 138 139 end 140 141 142 143 UPDATE studentS set stuID='1006' WHERE stuID='1005' 144 145 146 Create trigger trStudent 147 On Students 148 for Delete 149 As 150 Delete borrows 151 From borrows AS br , Deleted AS d 152 Where br.stuID=d.stuID 153 154 155 drop trigger trStudent 156 157 158 delete from students where stuID='1001'
转载于:https://www.cnblogs.com/cykj/p/SQLTrigger-instance-up.html
SQL触发器实例(上)相关推荐
- SQL触发器实例讲解1
SQL触发器实例1 定义: 何为触发器?在SQL Server里面也就是对某一个表的一定的操作,触发某种条件,从而执行的一段程序.触发器是一个特殊的存储过程. 常见的触发器有三种:分别应 ...
- SQL触发器实例讲解
定义: 何为触发器?在SQL Server里面也就是对某一个表的一定的操作,触发某种条件,从而执行的一段程序.触发器是一个特殊的存储过程. 常见的触发器有三种:分别应用于Insert , ...
- SQL触发器实例讲解(本文是来自百度文库)
我想记录每个商品的点击量,然后按照点击量来牌名商品,想要提高效率,所以必须得用触发器,下面是本人在百度文库中的找到的学习资料,分享下给大家. 定义: 何为触发器?在SQL Server里面也就是对某一 ...
- SQL触发器实例讲解(转)
定义: 何为触发器?在SQL Server里面也就是对某一个表的一定的操作,触发某种条件,从而执行的一段程序.触发器是一个特殊的存储过程. 常见的触发器有三种:分别应用于Insert , ...
- SQL触发器实例(下)
1 基本语法: 2 Create Trigger [TriggerName] 3 ON [TableName] 4 FOR [Insert][,Delete][,Update] 5 AS 6 --触发 ...
- SQL Server整合–在单个SQL Server实例上托管多个数据库
介绍 (Introduction) Consolidating SQL Server databases and instances is a practice which, under certai ...
- SQL server 触发器实例讲解
SQL触发器实例讲解(本文是来自百度文库) 定义: 何为触发器?在SQL Server里面也就是对某一个表的一定的操作,触发某种条件,从而执行的一段程序.触发器是一个特殊的存储过程. 常 ...
- 触发器实例精讲-志在必得
SQL触发器实例精讲,必看必会 定义: 何为触发器?在SQL Server里面也就是对某一个表的一定的操作,触发某种条件,从而执行的一段程序.触发器是一个特殊的存储过程. 常见的触发器有 ...
- SQL触发器的使用及语法(转)
定义: 何为触发器?在SQL Server里面也就是对某一个表的一定的操作,触发某种条件,从而执行的一段程序.触发器是一个特殊的存储过程. 常见的触发器有三种:分别应用于Insert , Update ...
最新文章
- 林宙辰:实现机器学习科研从 0 到 1,没有什么比一个好的理论更加实用
- block的一些注意事项
- Lua------------------unity与lua的热更新
- 第七十二节,文本样式
- k8s创建pod的步骤
- linux 复制分区文件,dd复制分区后目标分区的大小变成原分区了
- 【转】使用PowerApps快速构建基于主题的轻业务应用 —— 进阶篇
- 华为方舟编译器开源官网正式上线
- python登录各种网页示例_Python 通过爬虫实现GitHub网页的模拟登录的示例代码
- Django进阶(CSRF、Ajax)
- 人工智能顶会顶刊以及SCI,IF,核心,分区
- EditPlus3破解版下载以及配置java使用教程
- Android 运行时权限检测流程,申请危险权限组权限代码
- dva开发框架简介和演示
- 音频原始数据能量检测算法
- 水仙花数(调用函数)
- shader 光照贴图
- MySQL 利用xtrabackup进行增量备份详细过程汇总
- 虚拟主机1-基于IP
- 陀螺仪加速度参数的标准计算