精华内容
下载资源
问答
  • 一个表上的多个触发器执行顺序问题 http://blog.csdn.net/daoyuly/article/details/3931025

     一个表上的多个触发器执行顺序问题

    http://blog.csdn.net/daoyuly/article/details/3931025

    展开全文
  • oracle 一个表上的多个触发器执行顺序如下:before statement trigger->before row trigger->after row trigger->after statement trigger。 

    oracle 一个表上的多个触发器的执行顺序如下:

    before statement trigger->before row trigger->after row trigger->after statement trigger。

     

     

     

     

    展开全文
  • 当有多个触发器时,它们依旧每个都会去执行,而且如果回滚的话,会回滚所有该事务的操作,但是这些触发器的执行顺序是无序的或者说并没有一定规律.无规律会执行本来说来对数据是无影响的.但是却影响到速度.如果系统一个...

    数据库难免都会有触发器,而一个表一个事件有多个触发器也一点不见怪.当有多个触发器时,它们依旧每个都会去执行,而且如果回滚的话,会回滚所有该事务的操作,但是这些触发器的执行顺序是无序的或者说并没有一定规律.

    无规律会执行本来说来对数据是无影响的.但是却影响到速度.如果系统一个超多业务规则检测的触发器首先就执行了,而直到执行到最后一触发器,一个相当简单的触发器时,才发现此事件不可执行,之前N多的检测及要回滚的N多的事务,就让人觉得太浪费了.还是之前说的,不该浪费的一点不浪费,能利用的就要充分利用.我们有必要对触发器的执行顺序稍作调整.

    在查询分析器中,可以使用sp_settriggerorder来设置单个表的最先和最后执行的触发器,虽然只能设这两个,也好过没有.语法

    exec sp_settriggerorder @triggername='tg_triggername', @order='first' (or 'last' or 'none' ) ,@stmttype='insert' ( or 'update' or 'delete') 

    每种操作类型都必须定义一次,触发器有修改(Alter trigger)也会使之前的定义失效.

    展开全文
  • 在一张表有多个触发器的时候,允许开发人员对AFTER触发器被激发的顺序进行控制。控制顺序需要用到sp_settriggerorder存储过程,并注意以下几个方面: 顺序只能控制第一个触发器和最后一个触发器,除此之外的中间...

        在一张表有多个触发器的时候,允许开发人员对AFTER触发器被激发的顺序进行控制。控制顺序需要用到sp_settriggerorder存储过程,并注意以下几个方面:

    • 顺序只能控制第一个触发器和最后一个触发器,除此之外的中间触发器顺序无法控制。
    • 第一个和最后一个触发器必须是两个不同的DML触发器。
    • 控制顺序只针对相同的触发动作而言,也就是说AFTER update触发器,只能为UPDATE操作设置次序。
    • INSTEAD OF触发器不能设置顺序。
    • 如果ALTER TRIGGER语句更改了第一个或最后一个触发器,则会删除First或Last属性并将顺序值设置为None。必须使用sp_settriggerorder来重置顺序。

    sp_settriggerorder (Transact-SQL)

    https://docs.microsoft.com/zh-cn/sql/relational-databases/system-stored-procedures/sp-settriggerorder-transact-sql?view=sql-server-ver15

    sp_settriggerorder [ @triggername = ] '[ triggerschema. ] triggername'   
        , [ @order = ] 'value'   
        , [ @stmttype = ] 'statement_type'   
        [ , [ @namespace = ] { 'DATABASE' | 'SERVER' | NULL } ]
    • @triggemame项:要设置或更改其顺序的触发器的名称及其所属的架构。
    • @order项:触发器需要设置的顺序,可以是First,表示该触发器被第一个激发;Last,表示该触发器被最后一个激发;None,表示该触发器没有定义激发顺序。
    • @stmttype项:表示需要设置顺序的触发器的操作事件,INSERT、UPDATE、DELETE或DDL事件中列出的任何Transact-SQL语句事件,如CREATE TABLE事件等,不能指定事件组.如果触发器为AFTER update触发器,而该参数只能设置成UPDATE,如果设置成INSERT就会出错。
    • @namespace项:如果triggernamc表示DML触发器,该项不需要指定值或指定为NULL。如果triggemame是DDL触发器,则代表triggemame的作用域,可以是数据库作用域或服务器作用域。如果triggemame是登录触发器,则只能指定SERVER。

    例   演示触发器设置顺序。

    要求利用sp_settriggerorder设置触发器的顺序。操作步骤如下:

    ①创建第一个简单测试触发器

    CREATE TRIGGER  trg_ATriStudent_i1
    ON  ATriStudent
    AFTER update
    AS
    BEGIN
    	print '触发器trg_ATriStudent_i1被激发!'
    END

    创建第二个简单测试触发器

    CREATE TRIGGER trg_ATriStudent_i2
    ON  ATriStudent
    AFTER update
    AS
    BEGIN
    	print '触发器trg_ATriStudent_i2被激发!'
    END
    

    ③测试目前的触发器执行顺序

    update ATriStudent set age=12

    ④利用存储过程sp_settriggerorder改变触发器被激发的顺序

    sp_settriggerorder 
    @triggername='trg_ATriStudent_i1',@order='First',@stmttype ='UPDATE';


     

    展开全文
  • 触发器(四、执行顺序控制)

    千次阅读 2018-02-24 16:23:00
    Oracle11g开始提供了一个触发器顺序控制的功能,对于同时触发的多个触发器,可以用FOLLOWS语句来控制先后执行顺序。但是FOLLOWS语法有一定的限制:只能用在同类型的多个触发器上(before、after要一样;update、...
  • 在某环境中数据表存在多个触发器,数据的增删改是标准的每个表都有的触发器,此外还存在关于校验的触发器;起因是写完触发器后,有一次同事询问说触发器不起作用了,没有提示错误,但是数据无法保存;我也有点...
  • [SQL Server] 多触发器执行问题

    千次阅读 2010-03-20 00:13:00
    问题描述: 在某环境中数据表存在多个触发器,数据的增删改是标准的每个表都有的触发器,此外还存在关于校验的触发器;起因是写完触发器后,有一次同事询问说触发器不起作用了,没有提示错误,但是数据无法保存;我...
  • unity多个物体间的脚本执行顺序

    千次阅读 2017-02-21 21:00:59
    这次我们来讨论当很脚本执行的时候,这些函数的执行顺序和特点,首先我们知道unity官方的一张图: 即单个脚本中函数执行顺序为: 唤醒(Awake)激活(OnEnable)开始(Start)固定刷新(FixedUpdate)模拟物理...
  • 安利一个多线程连续触发器的框架,项目地址ContinuousTrigger 用于按序执行一系列任务,可随时绑定(如接口返回),可对每步骤设置超时响应时间。 使用起来非常简单,首先注册任务ContinuousTrigger.Builder()....
  • 单行触发器执行顺序 当在某一行上定义了多个触发器时,执行顺序如下: 1. BOFORE语句触发器 2. BEFORE行级触发器 3. 执行DML语句 4. AFTER行级触发器 5. AFTER语句触发器 多行触发器执行顺...
  • 触发器执行顺序 在同一个对象上可以作用多个触发器,因此触发器被激活是有先后顺序的: 首先触发的是前语句级触发器(before statement trigger),该触发器执行一次 如果有行级的触发器则接下来执行前行级触发器...
  • SQL Server触发器

    千次阅读 热门讨论 2013-06-09 21:28:49
    概念:  触发器是一种特殊的存储过程,不同于普通的存储过程。存储过程可以用存储过程名直接被调用,而触发器是通过事件... after触发器:在一个触发动作之后激发,并提供一种一种机制以控制多个触发器执行顺序
  • 可以为一个表定义多个触发器,在某些时候,在执行这些触发器时可能需要一定的顺序。因此,允许为INSERT、DELETE或UPDATE操作指定激发的第一个和最后一个AFTER触发器,分别称之为First和Last触发器。每个语句类型只能...
  • 这里直接上结果测试结果:默认情况是触发时间先后顺序排列,触发时间比较前的先执行任务,但如果一个或多个任务同时在相同时间触发下,触发器设置优先级越高越先执行。如果优先级相同,则跟任务的存储方式有关,R...
  • 简单触发器常用备忘

    2011-01-28 11:19:00
    应用开发程序员触发器常用: 1.触发器代码的大小不能超过32K,如果...3.一个表上多个触发器执行顺序:BEFORE语句级触发器-(BEFORE行触发器-AFTER行触发器)-AFTER语句触发器。括号中的可循环。 4.语句级触发器样
  • 浏览器是多进程的,一个进程中包含多个线程。js线程和ui线程互斥。浏览器的线程还有浏览器事件触发线程、定时触发器线程、异步HTTP请求线程。执行顺序 js执行过程中,先执行栈中的代码,碰到DOM事件回调函数、异步...
  • 上次说了同一对象里面不同触发器执行顺序。今天我也想分享一些我在同一表里面,建上不同的唯一约束,不同的唯一索引,看下结果会怎样 首先简单建测试表,不,就4列 CREATE TABLE AAA3 (ID INT ...
  • 如果使用语言来描述一器件符合上述原理,很明显需要用到时间先后的语法,而且在很场合,使用顺序执行的语句可以有效的简化描述语言的数量,基于这原因,描述有些电路结构需要使用顺序执行的语句。 但是即使...
  • 08、MySQL代码执行结构

    2017-07-18 22:19:07
    概念:事先准备多个代码块,按照条件选择性的执行某段代码 If分支结构 基本语法:if 条件判断 then ##满足条件要执行的代码; Else ##不满足条件的代码; End if;  需求:触发器结合if分支,如果库存大于订单量...

空空如也

空空如也

1 2 3 4 5 ... 8
收藏数 149
精华内容 59
关键字:

多个触发器执行顺序