SQL触发器
来源:互联网 发布:淘宝直播销量权重 编辑:程序博客网 时间:2024/06/08 00:28
什么是触发器?
触发器是在对表进行插入、更新或删除操作时自动执行的存储过程
触发器通常用于强制业务规则
触发器是一种高级约束,可以定义比用CHECK 约束更为复杂的约束 :可执行复杂的SQL语句(if/while/case)、可引用其它表中的列
触发器定义在特定的表上,与表相关。
自动触发执行
不能直接调用
是一个事务(可回滚)使用触发器的好处触发器可通过数据库中的相关表实现级联更改,不过,通过级联引用完整性约束可以更有效地执行这些更改。触发器可以强制比用CHECK约束定义的约束更为复杂的约束。与 CHECK 约束不同,触发器可以引用其它表中的列。例如,触发器可以使用另一个表中的 SELECT 比较插入或更新的数据,以及执行其它操作,如修改数据或显示用户定义错误信息。触发器也可以评估数据修改前后的表状态,并根据其差异采取对策。一个表中的多个同类触发器(INSERT、UPDATE 或 DELETE)允许采取多个不同的对策以响应同一个修改语句。
触发器的类型
DELETE 触发器
INSERT 触发器
UPDATE 触发器
创建触发器 语法
CREATE TRIGGER trigger_name
ON table_name
[WITH ENCRYPTION]
FOR [DELETE, INSERT, UPDATE]
AS
T-SQL语句
GO
会员表
学员表
教练表
题目如下:
根据申请会员申请的权限不同,将会员的ID插入到不同表中
会员包括{学员,教练}
MID为Member主码,自增。
学员权限码为0
教练权限码为1
SQL代码如下
create trigger tri_Member on tb_Member
for insert
as
begin
declare @Quan int;
select @Quan=MQuanfrom inserted
if(@Quan=0)
insert into tb_Stu(MID)
select MID from inserted
else
insert into tb_Coa(MID)
select MID from inserted
end
当会员删除时,可以创建DELETE 触发器,根据权限删除对应表中的数据。
触发器可以解决你在数据插入,更改,删除时,与之有关联表的数据插入,更新,删除操作。
比如,表MID为tb_Member主码,自增.同时作为的tb_Stu和tb_Coa的外码,当表tb_Member数据插入时,希望表tb_Stu或tb_Coa可以自动插入与之关联的外码值。
- SQL 触发器
- SQL触发器
- SQL触发器
- SQL触发器
- SQL 触发器
- SQL触发器
- sql触发器
- SQL触发器
- SQL触发器
- Sql触发器
- SQL触发器
- SQL 触发器
- SQL触发器
- SQL触发器
- sql 触发器
- SQL触发器
- SQL触发器
- SQL触发器
- Spring Boot学习之旅:(五)Spring Boot 使用 junit 单元测试
- 简单解释op(面向过程procedure- oriented)与oo(面向对象object-oriented)
- 在Ubuntu 14.04下配置FCIS的运行环境
- 在使用Mybatis框架的JavaWeb项目中通过Mybatis Generator逆向工程自动生成Java类文件
- 《Python学习手册》学习笔记(1)之第1章问答环节(关键词:编程语言/Python)
- SQL触发器
- JAVA 文件的创建与写入
- 利用pandas进行相关性分析并绘制图
- Sublime Text 3 安装插件
- PAT 甲级 1099. Build A Binary Search Tree (30)
- java 中的多态
- PAT 甲级 1100. Mars Numbers (20)
- Java内存模型学习笔记
- Spaghetti扫描器源码分析之指纹识别