博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
触发器
阅读量:6229 次
发布时间:2019-06-21

本文共 991 字,大约阅读时间需要 3 分钟。

定义: 何为触发器?在SQL Server里面也就是对某一个表的一定的操作,触发某种条件,从而执行的一段程序。触发器是一个特殊的存储过程。 

常见的触发器有三种:分别应用于Insert , Update , Delete 事件。 

比如:

Create Trigger truStudent 

On Student                         --在Student表中创建触发器 

for Update                          --为什么事件触发 

As                                        --事件触发后所要做的事情 

if Update(StudentID)            

begin 

 

Update BorrowRecord 

Set StudentID=i.StudentID 

From BorrowRecord br , Deleted   d ,Inserted i      --Deleted和Inserted临时表 

Where br.StudentID=d.StudentID 

end        

理解触发器里面的两个临时的表:Deleted , Inserted 。注意Deleted 与Inserted分别表示触发事件的表“旧的一条记录”和“新的一条记录”。 

一个数据库系统中有两个虚拟表用于存储在表中记录改动的信息,分别是: 

虚拟表Inserted                     虚拟表Deleted 

 

在表记录新增时     存放新增的记录                         不存储记录 

修改时           存放用来更新的新记录                   存放更新前的记录 

删除时           不存储记录                             存放被删除的记录 

 

一个Update 的过程可以看作为:生成新的记录到Inserted表,复制旧的记录到Deleted表,然后删除Student记录并写入新纪录。 

 

删除的触发器简单示例:

SET ANSI_NULLS ON

GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TRIGGER sffs   --创建触发器名
   ON  ccc   --在哪个表上操作触发
   AFTER delete   --表明在删除后触发
AS 
BEGIN
SET NOCOUNT ON;
declare @ssg nvarchar(50)  --定义一个变量
select @ssg = ID from deleted
delete from ooo where cccID =@ssg
END
GO

转载于:https://www.cnblogs.com/yybk/archive/2012/03/26/2417972.html

你可能感兴趣的文章
Liferay 启动过程分析7-初始化布局模板
查看>>
java格式化json字符串输入到文本中
查看>>
redis主从集群搭建及容灾部署(哨兵sentinel)
查看>>
apollo生产环境配置-实践笔记(附搭建框架图)
查看>>
正则去掉首尾空格以及首尾的
查看>>
CVPR
查看>>
python+selenium自动化测试(四)
查看>>
06Action中的Struts广告
查看>>
BashShell脚本的输入
查看>>
Docker镜像加速器
查看>>
我理解的Java并发基础(一):一些基本概念
查看>>
PHP 策略模式
查看>>
MySQL 设置密码,连接,常用命令
查看>>
基于MaxCompute构建企业用户画像(用户标签的制作)
查看>>
嵌入式系统基础及知识及接口技术总结
查看>>
指针和数组都是C语言的精髓所在,两者有何联系区别?
查看>>
Homebrew简介和基本使用
查看>>
如何将DWG批量转成高清晰JPG图片
查看>>
以太坊web3.js文档翻译及说明
查看>>
list集合练习笔记
查看>>