SQLServer触发器的创建和使用

article/2025/10/13 10:30:24

触发器也是和之前写的数据库函数和存储过程类似,
可以看做是一种特殊的数据库函数,只不过由系统调用,我们也需要表明调用的实际和规则

触发器的主体(也可以说是触发器的使用范围)

  • 表table
  • 视图view
  • 库database
  • 服务器server
    按照SQLServer的分类----表/视图触发器称为DML触发器-------数据库/服务器触发器称为DDL触发器

触发器的触发规则(触发的可选条件)

1.对于主体在表和视图的触发器
Trigger on an INSERT, UPDATE, or DELETE statement to a table or view
可以在Insert,Update,delete时触发
不能在Select触发
2.对于主体在数据库和服务器的触发器
Trigger on a CREATE, ALTER, DROP, GRANT, DENY, REVOKE, or UPDATE statement
可以在CREATE, ALTER, DROP, GRANT, DENY, REVOKE,UPDATE时触发

触发器的语法

表/视图触发器的语法

ALTER TRIGGER schema_name.trigger_name   
ON  ( table | view )   
[ WITH <dml_trigger_option> [ ,...n ] ]  ( FOR | AFTER | INSTEAD OF )   --( FOR | AFTER | INSTEAD OF )代表触发器执行的时机--FOR的默认既是AFTER表示在原命令执行后执行--INSTEAD OF代表不执行原命令,直接去执行触发器内容
{ [ DELETE ] [ , ] [ INSERT ] [ , ] [ UPDATE ] }   
--从机修改不执行触发该触发器
[ NOT FOR REPLICATION ]   
AS { sql_statement [ ; ] [ ...n ] | EXTERNAL NAME <method specifier>   
[ ; ] }   <dml_trigger_option> ::=  [ ENCRYPTION ]  [ <EXECUTE AS Clause> ]  <method_specifier> ::=  assembly_name.class_name.method_name 

示例:

测试表

Create table t_student(
Id int IDENTITY(1,1) PRIMARY key,
Name varchar(20),
Birth datetime,
Address varchar(100)
)
INSERT into t_student values('xiaoming','2022-07-07','GuangDong')
INSERT into t_student values('xiaohuang','2022-07-06','FuJian')

AFTER触发器

create trigger TestAfterTrigger 
ON t_student
AFTER UPDATE
AS
BEGINPRINT '修改了一条记录'
END	

请添加图片描述
更新语句正常执行
请添加图片描述
INSTEAD OF触发器

Create Trigger TestTriggerSec
On t_student
INSTEAD OF DELETE
AS
BEGINPRINT '你根本删除不了'
END	

请添加图片描述
再去查询原表
请添加图片描述
指定的记录并没有被删除,即原命令并没有执行
这就是INSTAD OF和AFTER的区别

数据库/服务器触发器的语法

ALTER TRIGGER trigger_name   
ON { DATABASE | ALL SERVER }   
[ WITH <ddl_trigger_option> [ ,...n ] ]  
{ FOR | AFTER } { event_type [ ,...n ] | event_group }   
AS { sql_statement [ ; ] | EXTERNAL NAME <method specifier>   
[ ; ] }  
}   <ddl_trigger_option> ::=  [ ENCRYPTION ]  [ <EXECUTE AS Clause> ]  <method_specifier> ::=  assembly_name.class_name.method_name  

数据库/服务器触发器(DDL触发器)的语法和表/视图触发器几乎一样,
不同在于不能使用INSTAED OF,和触发的规则不一样
示例:

Create Trigger DBTrigger 
On DATABASE 
FOR CREATE_TABLE
ASPRINT '你创建了一张表'

请添加图片描述


http://chatgpt.dhexx.cn/article/MvnBGt1A.shtml

相关文章

SQL server 创建触发器详解

触发器定义&#xff1a;一种特殊类型的存储过程&#xff0c;不同于存储过程。存储过程 调用名称执行&#xff0c;触发器的调用 通过事件触发 自动调用执行 。 触发器分类&#xff1a;1、DML触发器 数据库再创建触发器时会在内存中创建了两个专用表﹕Inserted表和Deleted表。这…

sqlserver触发器

为了更好的强制业务规则和保证数据的完整性&#xff0c;sql server为我们提供了两种机制&#xff0c;它们分别是约束(主键约束、外键约束、Not Null约束、唯一约束以及检查约束)和触发器。在触发器中&#xff0c;我们可以查询其他表&#xff0c;也可以包含复杂的Transact-SQL语…

SQLServer 触发器

今天修复K3系统生产出库单&#xff0c;审核、返审核 领料数量一直不变&#xff0c;没有相应改变&#xff0c;K3是16年买的&#xff0c;没有源码开发文档和表结构&#xff0c;只能在sqlserver中添加sql语句监视,看审核后改变那个表的状态和数据源sql语句&#xff0c;用触发器改变…

Mac 解压rar 文件

Mac 解压rar 文件 第一种方法&#xff1a; 下载下面链接中的软件&#xff0c;安装好就可以直接用了。 http://baijiahao.baidu.com/s?id1604390455412644388&wfrspider&forpc 安装过程中&#xff0c;一直点击下一步即可 第二种方法&#xff1a; https://blog.csd…

Mac电脑上视频压缩处理

第一步&#xff1a;用QuickTime Player打开你准备压缩的视频 第二步&#xff1a;选择文件——导出——1080P 720P 480P&#xff08;建议用720和480&#xff09; 第三步&#xff1a;选择你想要导出的大小&#xff0c;点击保存 最后一步&#xff0c;等存储完成就了 上面的图片视…

苹果电脑的压缩工具——FastZip

1.FastZip,一键快捷&#xff01; FastZip可以进行分卷压缩解压&#xff0c;支持7Z&#xff0c;ZIP&#xff0c;RAR&#xff0c;TAR&#xff0c;GZIP&#xff0c;BZIP2&#xff0c;XZ&#xff0c;LZIP&#xff0c;ACE&#xff0c;ISO&#xff0c;CAB&#xff0c;PAX&#xff0c…

Linux/macOS的打包、压缩、解压缩

打包 tar&#xff0c;打包后的扩展名为 .tar xxx.tar为打包后的文件名&#xff0c;xxx为被打包的文件 tar -cf xxx.tar xxx压缩 压缩命令为&#xff1a;gzip、bzip2&#xff0c;但是tar命令中已经集成压缩命令&#xff0c;可以通过制定参数进行文件压缩 tar -zcf xxx.tar.…

【Mac-rar文件解压】Mac系统如何打开rar压缩包文件_无需下载应用程序的快捷4步操作法

一位不喜欢下很多应用程序在&#x1f4bb;的目录 0.查阅说明1. 打开终端2.输入命令3. 输入命令4. 开始解压&#xff01; 0.查阅说明 大家好&#x1f44b;&#xff0c;因为本人属实很不喜欢下载很多应用程序在电脑上&#xff0c;因此在网络上找到了另外一种解决解压rar压缩包的…

mac压缩文件多了__MACOSX目录问题

文章目录 背景原因解决方案&#xff1a;更换压缩方式分析问题拓展&#xff08;.DS_Store&#xff09; 背景 项目中有一个场景&#xff0c;需要把目录压缩为app离线包的zip 但是压缩之后一致打不开&#xff0c;别人上传的zip是好的 原因 如图&#xff0c;我上传的在安卓设备…

Mac 终端解压缩命令大全

Mac 终端解压缩命令大全 .zip 解压缩&#xff1a; unzip FileName.zip 压缩&#xff1a; zip FileName.zip DirName zip 使用细节 zip -q -r -e -m -o FileName.zip DirName -q 表示不显示压缩进度状态-r 表示子目录子文件全部压缩为zip //这部比较重要&#xff0c;不然的…

Mac使用命令行工具解压和压缩rar文件

目前在Mac电脑里支持解压缩的格式主要有&#xff1a;zip、gz等&#xff0c;但是还不支持rar格式的文件&#xff0c;接下来带着大家学习一下如何解压缩rar格式文件。 1.下载rar工具 打开&#xff1a;https://www.rarlab.com/download.htm 根据自己电脑的芯片要求选择自己的安装…

如何在Mac上快速压缩和解压文件?Mac上解压和压缩文件的方法

苹果mac电脑怎么压缩和解压文件?Mac电脑仅默认支持把文件压缩成zip格式,解压成zip、tar.gz,bz2等格式,有些操作需要安装第三方软件来完成,这篇文章为大家带来几种关于在Mac上解压和压缩文件的方法,有兴趣的朋友可以来了解一下载哦! 一、解压工具 1.MacOS自带的解压 只能…

Mac有哪些解压缩软件,他们的优缺点是什么,哪款比较好用?

Mac有哪些解压缩软件&#xff0c;他们的优缺点是什么&#xff0c;哪款比较好用&#xff1f; 相信有很多小伙伴和我有一样的疑问&#xff0c;Mac 有哪些解压缩软件&#xff0c;那款更好用哪&#xff1f;下面我们就带着疑问来详细了解一下 Mac 上的常见解压缩软件 一、macZip ⇲…

使用数字芯片将5V转3.3V方案电路图

5V转3.3V常用方案 ## &#xff11;&#xff0e;AMS117 优点&#xff1a;便宜&#xff0c;1毛一片 缺点&#xff1a;体积大 电路图&#xff08;来自正点原子&#xff09;&#xff1a; 2. HT7833 优点&#xff1a;体积比AMS1117小一号 缺点:比1117贵一点&#xff0c;8~9毛…

数字芯片后端设计——SRAM宏模块布局布线

在40nm SMIC工艺下&#xff0c;根据手册总结单端SRAM的布局布线问题。 ArtiGrid power structure options&#xff1a;以下图为例&#xff0c;memory的电源布线&#xff0c;无论是core核还是外围periphery&#xff0c;都是在M4层展开&#xff0c;在整个SRAM宏模块中&#xff0…

华为2019数字芯片岗笔试解析二(单选第三部分)

首发来自公众号&#xff1a;数字芯片设计 21.数字电路设计中&#xff0c;下列哪种手段无法消除竞争冒险现象&#xff08;&#xff09;【A】加滤波电容&#xff0c;消除毛刺【B】增加冗余项消除逻辑冒险【C】增加选通信号&#xff0c;避开毛刺【D】降低时钟频率 解析&#xff1a…

【开卷】第一期(下) ​海思提前批数字芯片笔试(带解析)

2022届的IC招聘&#xff0c;也来的太早了一些。应届生们刚刚办理完入职&#xff0c;各个企业的提前批招聘就突然启动。颇有秋招变夏招的架势。伴随着更多的非科班同学的转行&#xff0c;卷起来已成必然。而各个企业涉猎广泛的笔试题更是打了刚刚开始进行秋招准备的同学们一个措…

华为2019数字芯片岗笔试解析(多选部分)

首发来自微信公众号&#xff1a;数字芯片设计 不定项选择 1.关于状态机编码&#xff0c;如下描述中正确的是&#xff08;&#xff09;【A】状态编码用parameter定义【B】状态机必须有default态【C】用组合逻辑和时序逻辑分离的风格描述FSM【D】用case语句描述状态的转移 解析&a…

华为海思 2021数字芯片/IC 笔试题+解析

题目来源于众多网友对笔试的记录、回忆。 理解不到位&#xff0c;难免出错&#xff0c;解析仅为个人看法&#xff0c;有不同意见请留言指教&#xff0c;谢谢&#xff01; 题型&#xff1a; 30个单选10个多选 单选 1.影响芯片成本的主要因素是die size和封装&#xff0c;但电…