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

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

什么是触发器

触发器对表进行插入、更新、删除的时候会自动执行的特殊存储过程,它可以定义比CHECK约束更为复杂的约束,sql server 中触发器分为两类一类是DDL(数据定义语言如:create,alter,drop),一类是DML(数据操作语言如:select,delete,update,insert),我们平常使用一般是DML类型的触发器,这里主要讲述DML类型触发器。

DML类型的触发器分为两类:

1、After触发器

  After触发器要求只有执行某一操作insert、update、delete之后触发器才被触发,且只能定义在表上

2、Instead of触发器

   Instead of 触发器表示并不执行其定义的操作(insert、update、delete)而仅是执行触发器本身。既可以在表上定义instead of触发器,也可以在视图上定义

触发器常用的两张表介绍inserted和deleted

触发器有两个特殊的表:插入表(instered表)和删除表(deleted表),这两个表是只读的逻辑表(虚表),表结构总是和被写触发器的表结构相同,只存在系统内存中,不会存储在数据库中,触发器完成工作后,这两张表就会被删除。

Inserted表的数据是插入的数据或是修改后(更新后)的数据

deleted表的数据是被删除的数据或是修改前(更新前)的数据

语法

CREATE TRIGGER trigger_name ON {table_name | view_name} {
FOR | After | Instead of } [ insert, update,delete ]AS sql_statement

 

1、触发器新增(insert)

业务场景:当表A新增数据的时候,同时将新增的数据插入到表B

create trigger tri_lcsp_RYLZon A after insert  as begin insert into B (A018,--姓名 A420,--工号A421,--部门A422,--岗位A426,--入职日期A428,--离职日期A424,--离职类型A427,--离职原因A425--oa流水号)select XM,RYBH,SZBM,GW,RZRQ,LZRQ,LZLX,LZYY,OALSHfrom insertedend

 2、触发器修改(update)

 3、触发器删除(deleted)

 4、触发器 instead of

 

转载于:https://www.cnblogs.com/xiaowunian/p/10056077.html

你可能感兴趣的文章
PHP 实现笛卡尔积
查看>>
Laravel中的$loop
查看>>
CentOS7 重置root密码
查看>>
Centos安装Python3
查看>>
PHP批量插入
查看>>
laravel连接sql server 2008
查看>>
Laravel框架学习笔记之任务调度(定时任务)
查看>>
laravel 定时任务秒级执行
查看>>
浅析 Laravel 官方文档推荐的 Nginx 配置
查看>>
Swagger在Laravel项目中的使用
查看>>
Laravel 的生命周期
查看>>
CentOS Docker 安装
查看>>
Nginx
查看>>
Navicat远程连接云主机数据库
查看>>
Nginx配置文件nginx.conf中文详解(总结)
查看>>
【2020-3-21】Mac安装Homebrew慢,解决办法
查看>>
influxdb 命令行输出时间为 yyyy-MM-dd HH:mm:ss(年月日时分秒)的方法
查看>>
FFmpeg 新旧版本编码 API 的区别
查看>>
RecyclerView 源码深入解析——绘制流程、缓存机制、动画等
查看>>
Android 面试题整理总结(一)Java 基础
查看>>