SQL server 创建触发器详解
触发器定义:一种特殊类型的存储过程,不同于存储过程。存储过程 调用名称执行,触发器的调用 通过事件触发 自动调用执行 。
触发器分类:1、DML触发器
数据库再创建触发器时会在内存中创建了两个专用表﹕Inserted表和Deleted表。这两个表由系统来维护,当触发器 被激发完成后,与触发器相关的Inserted和Deleted这两个表也被删除
2、DDL触发器
DML(Data Manipulation Language)触发器
对表操作 | inserted | deleted |
insert | 存放插入的数据 | 无 |
update | 存放更新后的数据 | 存放更新前的数据 |
delete | 无 | 存放被删除的数据 |
inserted 存放插入或更新后数据
deleted 存放更新前或删除的数据
今天我先介绍都DML触发器-插入和更新操作
DML触发器分为两种 :
after 触发器 insert 、update、delete {执行完操作后,再去执行触发器本身}
instered of 触发器 insert 、update、delete {只执行触发本身}
两者是相互对立,最好不要在一张表中同时创建这两种触发器。
--创建 after insert 触发器:对表操作(我们对表执行插入操作时就会执行)
创建语法格式:
create trigger 触发器名称
on 表名
after insert /for insert
as
T-SQL 语句
go
执行效果:
alter trigger ...(对创建的触发器某些操作不满意,重新修改 )
触发 触发器 insert into 表名 (字段、字段、字段 ..)values(对应字段插入值) 为什么执行插入insert ,因为开始我就是创建的是after insert 触发器 。
创建 after update 触发器 (我们对表执行更新操作时就会执行)
学习触发器之前我们只能看见update 更新后的数据
create trigger 创建触发器名称
on dbo.test
after update
as
--T-sql
go
执行效果:
本次执行过程执行的是 update(更新操作),而且还做了,将进行修改的数据,在修改前进行了,保存,通过语句 select * into 表名 from deleted (将更新前的数据保存在了testbackup表中)
因为刚才讲过了,after 触发器 insert 、update、delete {执行完操作后,再去执行触发器本身},我们在T-sql 语句中设置了会将更新前的数据保存在,testbackup 表中,所以我们会先去执行select*into testbackup from deleted {先把更新前数据保存后},再去执行 插入id=3 MNname= SQLserver age=22 这条语句。
我们去看一下testbackup这张表装的是什么
没错装的就是执行更新操作前 标识符 id= 3 的信息行装的数据 ,它原来是 MNname = 计算机 ,age= 3,我们将他更新成了 MNname =SQLserver ,age= 22 。
通过这个操作 ,我们也明白了 更新操作其实就是,先删除再去插入。
总结: 本次DML触发器,我了解学习的也是很模糊,有些地方也没有给大家解释清楚,不过没有关系,同学们有什么看不懂欢迎发送私信提问,共同努力共同进步。
SQL server 创建触发器详解相关推荐
- SQL Server:触发器详解
SQL Server:触发器详解 1. 概述 2. 触发器的分类 3. Inserted和Deleted表 4. 触发器的执行过程 5. 创建触发器 6. 修改触发器: 7. 删除触发器: 8. 查看 ...
- MS SQL Server 数据库连接字符串详解
MS SQL Server 数据库连接字符串详解 问题 : 超时时间已到.在从池中获取连接之前超时时间已过.出现这种情况可能是因为所有池连接都已被使用并已达到最大池大小. 解决办法 1. 在代码里面 ...
- mysql coalesce函数用法,SQL Server COALESCE函数详解及实例
SQL Server COALESCE函数详解 很多人知道ISNULL函数,但是很少人知道Coalesce函数,人们会无意中使用到Coalesce函数,并且发现它比ISNULL更加强大,其实到目前为止 ...
- sql server 存储过程的详解
SqlServer存储过程详解 1.创建存储过程的基本语法模板: if (exists (select * from sys.objects where name = 'pro_name'))drop ...
- SQL Server数据库事务处理详解(MSDN网上资源)
事务定义: 事务是单个的工作单元.如果某一事务成功,则在该事务中进行的所有数据更改均会提交,成为数据库中的永久组成部分.如果事务遇到错误且必须取消或回滚,则所有数据更改均被清除. 事务三种运行模式: ...
- sql server 中游标详解
目录 游标的定义 种类:(我也不太理解,有理解的@我) 游标的类型: 游标的实现 游标的实现功能 游标的使用的步骤: 游标的使用: 1.声明游标 游标的格式:(看了很多版本的格式说明, 这是最好理解的 ...
- SQL Server数据库事务处理详解 TRANSACTION
务定义: 事务是单个的工作单元.如果某一事务成功,则在该事务中进行的所有数据更改均会提交,成为数据库中的永久组成部分.如果事务遇到错误且必须取消或回滚,则所有数据更改均被清除. 事务三种运行模式: 自 ...
- Java调用SQL Server的存储过程详解
本文较长,包含了如下几部分 使用不带参数的存储过程 使用带有输入参数的存储过程 使用带有输出参数的存储过程 使用带有返回状态的存储过程 使用带有更新计数的存储过程 1使用不带参数的存储过程 使用 JD ...
- Sql Server之数据类型详解
数据类型是一种属性,用于指定对象可保存的数据的类型,SQL Server中支持多种数据类型,包括字符类型.数值类型以及日期类型等.数据类型相当于一个容器,容器的大小决定了装的东西的多少,将数据分为 ...
最新文章
- 张亚勤、韦乐平等综述论文:通信人工智能的下一个十年
- django 之 session
- Linux内核代码 分析大纲思维导图
- Hyperledger Fabric、Corda和以太坊对比
- OpenCV-python学习笔记(三)——histograms直方图
- 为什么线程切换开销大
- php session的一些理解
- java nio 追加写文件_java.nio.file读写文件
- bzoj4407: 于神之怒加强版
- 华众 mysql_华众6.5虚拟主机管理系统SQL注入漏洞利用
- 开源扫描仪软件_适用于Windows的优秀开源免费扫描仪软件?
- DirectX11 SDK下载地址
- JavaScript复习笔记
- 北京市基本医疗保险A类定点医疗机构名单(2010-09-29)
- string头文件函数
- 360和QQ,拿什么来拯救你?
- 三位一体计算机类自荐信范文,三位一体大学自荐信范文
- CHECKMARX安全漏洞检测防止XSS(Cross Site Scripting)跨站脚本攻击
- 苹果按键强制恢复出厂_苹果7密码解锁反应迟钝是怎么回事?
- 最详细的 Toolbar 开发实践总结