打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
SQL触发器的执行流程,应用,权限)
事务的执行流程
1、 执行Identity insert 检查    ---插入表的标识列中
2、 检查为空性约束
3、 检查数据类型
4、 执行 instead of 触发器。如果存在insert of 触发器,将停止执行触发它的DML语句。instead of触发器是不可递归调用的,因此,如果一个instead of 触发器执行了一个DML命令,而这个命令再次触发了同一个事件(insert,update,delete),第二次产生的这个事件将不会再次触发instead of 触发器。
5、 检查主键约束
6、 检查check约束
7、 检查外部键约束
8、 执行DML语句,并更新事务日志
9、 执行after触发器
10、提交事务
11、写入数据文件
注意点:
after触发器是在完成所有的约束检查之后执行的。因此不能使用它来修改数据,所以数据必须经过所有的完整性检查,包括外部键约束的检查。
instead of 触发器可以解决外部键的问题,但却不能解决为空性,数据类型或者标识列的问题
after触发器是在DML事务提交之前执行的所以如果数据是不可接受的,可以回滚事务。
 
每个表对于每个表事件只能有一个instead of 触发器,除了表以外,还可以在视图上应用instead of触发器
after触发器适用情况(在事务完成之后,事务提交之前触发)
进行复杂的数据验证
实现复杂的业务规则
数据审计跟踪记录
维护修改日期列
实现客户订制的参照完整性检查和级联删除
instead of触发器适用情况(总是回滚触发触发器的事务,并使用其他逻辑替代原来的DML语句)
当DML语句试图更新一个不可更新的试图时,利用instead of触发器代替它对基础表的更新
当DML语句试图直接更新库存表时,利用instead of触发器代替它对库存事务表进行更新
当DML语句试图删除一行时,利用instead of触发器将被删除的行放入一个归档表
触发器的限制不能使用的SQL命令
create alter 或者drop database
Reconfigure
Restore database 或者 log
Disk resize
Disk init
安全权限
只有拥有sysadmin固定服务器角色的用户;拥有db_owner或db-ddladmin固定数据库角色的用户;或者是表的所有者,触发器内执行的代码是按照拥有该触发器的表的的所有者的安全权限来执行的
 
SQLserver可以让触发器中的代码获取他的事务所作的修改
Inserted 和Deleted表是只读的数据映像表,可以将它们看作事务日志的试图
Deleted表包含了受到DML语句影响的记录行在操作之前的旧值,Inserted表包含了受到DML语句影响的记录行在操作之后的新值
DML语句                inserted表                           deleted表
insert                  新插入的行                            空
update                 受影响的行更新后的新值            受影响的行更新之前的旧值
delete                  空                                删除的行
Inserted 和Deleted表的作用域非常有限,只有在触发器中才可见,触发器中调用的存储过程中无法使用Inserted 和Deleted表。
Inserted 和Deleted表无法访问text、ntext、image数据类型的列
在有数百个触发器的数据库中,一般来说 不能按照表事件组织触发器,而应该使用触发器的任务来组织他们。
SQLserver中最多可嵌套调用32层,可以使用Trigger_NestLevel()函数来返回嵌套的层数。
 
如果一个表同时拥有instead of 触发器和after触发器
执行顺序:
1、 DML语句启动一个事务
2、 触发instead of 触发器以替代触发它的DML语句
3、 如果这个instead of 触发器执行了会产生同一表事件的DML语句,处理过程就将继续下去
4、 触发after触发器
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Sql Server触发器
SQL触发器语法
触发器(Trigger)(三)
Oracle学习笔记
解读SQL Server 2008变更跟踪
关于ORA-04091异常的出现原因,以及解决方案
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服