或非门构成的基本RS触发器:R×S=0。......
2025-09-30
1.触发器的概念
触发器是一种特殊的存储过程,基于表/视图/服务器/数据库创建,满足一定条件时自动执行,不由用户直接调用,以保证数据库的完整性、正确性和安全性。
当触发器所保护的数据发生变化(UPDATE、INSERT、DELETE)或当服务器、数据库中发生数据定义(CREATE、ALTER、DROP)后,其自动运行以保证数据的完整性和正确性。
2.触发器的分类
1)DML(Data Manipulation Language)触发器
DML触发器在发生数据操作语言(DML)事件(INSERT、UPDATE或DELETE)时自动生效。DML触发器可用于强制业务规则和数据完整性、查询其他表并包括复杂的T-SQL语句。将触发器和触发它的语句作为可在触发器内回滚的单个事务对待。如果检测到错误(例如磁盘空间不足),则整个事务即自动回滚。
(1)AFTER触发器:在数据变动(INSERT、UPDATE、DELETE操作)完成后被激发。对变动的数据进行检查,如发现错误,将拒绝或回滚变动的数据。该触发器只能创建在表上,不能创建在视图上;一个表可以有多个基于不同操作的AFTER触发器。(https://www.chuimin.cn)
(2)INSTEAD OF触发器:将在数据变动以前被激发,并取代变动数据的操作(INSERT、UPDATE、DELETE操作),转而去执行触发器定义的操作。一个表只有一个该触发器,它可以创建在表上,也可以创建在视图上。
2)DDL(Data Definition Language)触发器
当服务器或数据库中发生数据定义语言(DDL)事件时将调用该触发器,它为响应多种数据定义语言语句而激发。这些语句主要是以CREATE、ALTER和DROP开头的语句。DDL触发器可用于防止对数据库架构进行某些更改、数据库中发生某种情况以响应数据库架构的更改、记录数据库架构的更改或事件。
3)登录触发器
登录触发器将为响应LOGON事件而激发存储过程。与SQL Server实例建立用户会话时将引发此事件。登录触发器将在登录的身份验证阶段完成后且用户会话事件建立之前激发。
可以使用登录触发器来审核和控制服务器会话,如通过跟踪登录活动、限制SQL Server的登录名或限制特定登录名的会话数。
相关文章
关系完整性约束用于保证关系模型(表)中数据的正确性、一致性和有效性,防止数据被破坏。若发现主键为空或已有相同主键值存在,将给出错误信息并要求用户纠正以保证数据的完整性。例如;在参照关系SC中插入数据时,检查SID的值是否在被参照关系Student的SID属性值中存在。在删除被参照关系Student的元组时,也要检查SID是否被参照关系SC引用,根据关系设置确定是否删除或者级联删除等从而避免该学生不存在,却还有该学生的选课情况。......
2025-09-30
如果事务出错,终止后,账户返回到原先的有效状态。当以隐性事务模式操作时,SQL Server将在提交或回滚事务后自动启动新事务。......
2025-09-30
4.物理设计阶段在物理设计阶段,根据数据库管理系统的特点和处理的需要,对逻辑设计阶段的关系模型进行物理存储安排并设计索引,形成数据库的内模式。......
2025-09-30
由微处理器组成的数字触发器与分立式触发电路和集成触发器相比,其结构简单、控制灵活、控制精度和可靠性高。图2.45 是以MCS-51 系列单片机AT89C51 为控制核心构成的数字触发器的原理框图。该数字触发器也是由脉冲同步、脉冲移相、脉冲形成与输出等几部分组成的。......
2025-09-29
利用SSMS和T-SQL语句创建、修改、删除博客数据库BlogDB视图,并利用视图完成对基本表的修改工作。单击“视图设计器”工具栏中的“执行SQL”按钮,可以查看查询结果。在“对象管理器”中,展开“数据库”→“BlogDB”节点,用鼠标右键单击“视图”节点,从出现的菜单中选择“打开视图”命令,浏览视图结果。......
2025-09-30
SQL Server 2019分为5个版本,分别是SQL Server 2019企业版、标准版、网络版、开发版,快速版,其功能和作用也各不相同。如果需要使用更高级的数据库功能,则可以将快速版无缝升级到其他更高端的SQL Server版本。SQL Server Express LocalDB是快速版的一种轻型版本,该版本具备所有可编程性功能,在用户模式下运行,并且具有零配置安装快速和必备组件要求较少的特点。......
2025-09-30
如果出现提示使用MySQL 5.1.6之前的版本,则需要SUPER权限才能创建触发器;而从5.1.6开始,账户有TRIGGER权限就可以创建触发器。关于这个前缀及类似前缀的更多信息,请参见补充内容“触发器命名约定”。触发器命名虽然没有要求,但为触发器采用某种命名约定是一个好主意,这样可以更快地确定每个触发器的作用。例如,可以考虑为每个触发器加上如下字符串作为前缀,触发器创建示例中就采用了这种做法。au,在UPDATE查询发生之后执行触发器。......
2025-09-30
相关推荐