第十章触发器的创建与管理

第十章触发器的创建与管理

  • 10.1_触发器简介
  • 10.2_触发器的创建、修改、删除
    • 10.2.1_触发器的创建
    • 10.2.2_触发器的修改
    • 10.2.3_触发器的删除
    • 10.2.4_触发器的创建、修改、删除举例
  • 10.3_instead of触发器
    • 10.3.1_instead of触发器简介及举例 有疑问
  • 10.4_inserted、deleted表
  • 10.5_注意事项

10.1_触发器简介

触发器是一种特殊的存储过程,常常用于实现强制业务规则和数据完整性。触发器由SQL Server自动执行,不能由应用程序调用,这是它与存储过程不同的地方,便于保护数据库的完整性和完全性。

10.2_触发器的创建、修改、删除

10.2.1_触发器的创建

CREATE TRIGGER trigger_name
[WITH ENCRYPTION]--加密
ON table_name
{FOR | AFTER | INSTEAD OF} INSERT, UPDATE, DELETE
AS
--sql过程块

10.2.2_触发器的修改

ALTER TRIGGER trigger_name
[WITH ENCRYPTION]--加密
ON table_name
FOR INSERT, UPDATE, DELETE
AS
--sql过程块

10.2.3_触发器的删除

DROP TRIGGER trigger_name

10.2.4_触发器的创建、修改、删除举例

CREATE TRIGGER Company_attention
ON Company
WITH ENCRYPTION
FOR INSERT
AS
print '字符串'
ALTER TRIGGER Company_attention
ON Company
WITH ENCRYPTION
FOR INSERT
AS
print '字符串'
DROP TRIGGER Company_attention

10.3_instead of触发器

10.3.1_instead of触发器简介及举例 有疑问

instead of触发器作用:执行触发器中的内容,而禁止执行触发词触发器的sql语句

CREATE TRIGGER [CONTRACT_DELETE] ON [CONTRACT] 
INSTEAD OF DELETE--instead of类型 
AS
BEGIN
IF EXISTS
(SELECT Count(*) FROM ContractDetail 
WHERE ContractID IN (SELECT ContractID FROM Deleted))--如果这个结果不是0就说明有相关记录
--打印
PRINT ‘合同明细表中有相关记录,不能删除’
ELSE--否则就删除
DELETE FROM CONTRACT
WHERE CONTRACTID in (SELECT CONTRACTID FROM deleted)
END

再次删除不会再次触发这个触发器吗

10.4_inserted、deleted表

Inserted表
存放由insert 或update语句的执行而导致要加到该触发器作用的表中去的任何新行。


deleted表
存放由delete 或update语句的执行而导致要从被该触发器作用的表中删除的任何行。


inserted与deleted表中自带与操作的表同样的属性列

10.5_注意事项

SQL Server 允许创建的存储过程引用尚不存在的对象。在创建时,只进行语法检查。 CREATE TRIGGER
必须是批处理中的第一条语句,并且只能应用到一个表中。
触发器中不允许以下 Transact-SQL 语句:ALTER DATABASE 、CREATE DATABASE、 DISK INIT 、DISK RESIZE 、DROP DATABASE 、LOAD DATABASE 、LOAD LOG 、RECONFIGURE 、RESTORE DATABASE 、RESTORE LOG

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/545319.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

英语笔记:词组句子:0812

Among 表示多人之间的一种共同关系 Within 在……之内 On 在……之上 Towards 向、对于 Sponsor 发起、主办 Spread 扩散、蔓延 Speed 快行、急走 Spur 激励、刺激 Entrance 入口 Chance 机会 Route 路线 Less likely 较少可能 Shrink 缩短 Tighten 绷紧 Limit 限…

如何在海量数据中查询一个值是否存在?

一般面试中考察的题目通常是由三类组成的,基础面试题、进阶面试题、开放性面试题,而本文的题目则属于一个开放性的面试题,但对于 Redis 这种以数据为核心的缓存中间件来说,实现在海量数据中查询一个值是否存在还是相对比较容易的。 因为是海量数据,所以我们就无法将每个键…

Hapoxy+keepalived实现双主高可用负载均衡

在测试了NginxKeepalived的负载均衡后,也对HaproxyKeepalived双主模式做了测试,双主的模式充分利用了服务器资源,这样不会导致服务器浪费。 这里举例说明: 默认情况下,第一台负载均衡器主要分发 www.breaklinux的请求…

c语言中的printf函数_C语言中的printf()函数与示例

c语言中的printf函数C语言中的printf()函数 (printf() function in C) The printf() function is defined in the <stdio.h> header file. 在<stdio.h>头文件中定义了printf()函数 。 Prototype: 原型&#xff1a; int printf(const char* str, . . .);Parameter…

第一章数据库绪论

第一章数据库绪论1.1_数据库系统概述1.1.1_数据库的四个基本概念1.1.2_数据库系统的特点1.2_数据库模型1.2.1_两类数据模型1.2.2_概念模型1.2.3_数据模型的组成要素1.2.4_常用的数据模型1.3_数据库系统的结构1.3.2_数据库系统的三级模式结构1.3.3_数据库的二级映像功能与数据独…

如何保证 Redis 消息队列中的数据不丢失?

Redis 最常见的业务场景就是缓存读取与存储,而随着时间的推移,有人开始将它作为消息队列来使用了,并且随着 Redis 版本的发展,在 Redis.2.0.0 中新增了发布订阅模式(Pub/Sub)代表着官方开始正式支持消息队列的功能了,直到今天为止还有部分公司在实现轻量级的消息队列时,…

英语笔记:写作:Limiting the use of disposable plastic bags

Limiting the use of disposable plastic bags 限制使用一次性塑料袋 Recently,limiting the use of disposable plastic bags has been brought to popularattention in china. No one denies that they once gained great popularity in ourdaily life. However, what would…

9款基于CSS3 Transitions实现的鼠标经过图标悬停特效

之前给大家分享了很多css3实现的按钮特效。今天给大家分享9款基于CSS3 Transitions实现的鼠标经过图标悬停特效。这款特效适用浏览器&#xff1a;360、FireFox、Chrome、Safari、Opera、傲游、搜狗、世界之窗. 不支持IE8及以下浏览器。效果图如下&#xff1a; 在线预览 源码下…

Redis 如何实现分布式锁?

锁是多线程编程中的一个重要概念,它是保证多线程并发时顺利执行的关键。我们通常所说的“锁”是指程序中的锁,也就是单机锁,例如 Java 中的 Lock 和 ReadWriteLock 等,而所谓的分布式锁是指可以使用在多机集群环境中的锁。 我们本文的面试题是,使用 Redis 如何实现分布式…

scala 函数中嵌套函数_如何在Scala中将函数转换为部分函数?

scala 函数中嵌套函数First, lets see what is a function and a partial function, and then we will see their conversion process. 首先&#xff0c;让我们看看什么是函数和部分函数&#xff0c;​​然后看它们的转换过程。 Function in Scala is a block of code that i…

英语笔记:台词

Memories are too important. 记忆弥足珍贵。 You won’t be sad forever, Elena. 悲伤不会相伴一生&#xff0c;艾琳娜。 When you lose someone it stays with you. 当你失去了某个人&#xff0c;那种感觉如影随行。 Always reminding you of how easy it is toget hurt. …

第二章关系数据库

第二章关系数据库2.1 关系模型概述&#xff08;略&#xff09;2.2 关系操作2.2.1_基本关系操作2.2.2_关系数据库语言的分类2.3 关系的完整性2.3.1_关系的三类完整性约束2.3.2_实体完整性2.3.3_参照完整性2.3.4_用户定义的完整性2.4 关系代数2.4.1_传统的集合运算2.4.2_专门的关…

线程----Monitor(互斥锁)类设置超时值

Monitor类与Lock语句相比&#xff0c;Monitor类的主要优点是&#xff1a;可以添加一个等待被锁定的超时值。缺点&#xff1a;开销非常大using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.T…

常用的 Redis 优化手段有哪些?

每个软件的常规操作有两种,一种是使用,另一种就是调优,对于 Redis 来说也是一样。关于 Redis 调优的问题一般会出现在 Redis 面试的后期,以此来考察面试者对于 Redis 的实际应用掌握,以及对于 Redis 高性能的追求与理解,因此本文就来重点的聊一聊关于 Redis 调优的相关问…

英语笔记:词组句子:1112

Survey 调查 Reveals 显示 show indicate Submits 呈送、提交 Launches 发动、发起 Generates 产生、创造 Staff 员工 Audience 观众、听众 Officials 官员、高级职员 Partners 合伙人、配偶 Shortage 短缺 Exits 出口 Departures 离开、离职 Absences 不在、缺席 …

Java RandomAccessFile writeLong()方法与示例

RandomAccessFile类writeLong()方法 (RandomAccessFile Class writeLong() method) writeLong() method is available in java.io package. writeLong()方法在java.io包中可用。 writeLong() method is used to write the long value to the file as 8 bytes directly without …

第三章关系数据库标准语言SQL

第三章关系数据库标准语言SQL3.1_SQL的特点3.3_数据定义3.3.1_基本表的定义、删除与修改3.3.3_索引的建立与删除3.4_数据查询3.4.1_查询时消除重复行3.4.2_涉及空值的查询3.4.3_BETWEEN AND的使用3.4.4_字符匹配3.4.5_聚集函数3.5_数据更新3.5.1_插入数据3.5.2_修改数据3.5.3_删…

使用 Redis 如何实现延迟队列?

延迟消息队列在我们的日常工作中经常会被用到&#xff0c;比如支付系统中超过 30 分钟未支付的订单&#xff0c;将会被取消&#xff0c;这样就可以保证此商品库存可以释放给其他人购买&#xff0c;还有外卖系统如果商家超过 5 分钟未接单的订单&#xff0c;将会被自动取消&…

适用响应式 Web UI 框架

1. BootstrapBootstrap是快速开发Web应用程序的前端工具包。它是一个CSS和HTML的集合&#xff0c;它使用了最新的浏览器技术&#xff0c;给你的Web开发提供了时尚的版式&#xff0c;表单&#xff0c;buttons&#xff0c;表格&#xff0c;网格系统等等。官方网站: http://twitte…

VC 忽略警告的方法

在vs2003, vs2005中用sprintf 会出现warning C4996: sprintf was declared deprecated或warning C4996: strcpy was declared deprecated或warning C4996: strcat was declared deprecated的警告。这里给出解决问题的一些方法。方法一&#xff1a;调用VS2005鼓吹的那些带“_s”…