• 相关软件
    >TRIGGER_NESTLEVEL 创建者:webmaster 更新时间:2006-02-16 15:51

    返回对激发触发器的 UPDATE、INSERT 或 DELETE 语句执行的触发器数量。TRIGGER_NESTLEVEL 用于触发器中以确定当前的嵌套级别。



    语法


    TRIGGER_NESTLEVEL ( [ object_id ] )



    参数


    object_id



    是触发器的对象 ID。如果指定了 object_id,则返回为该语句执行指定触发器的次数。如果未指定 object_id,则返回为该语句执行全部触发器的次数。



    object_id 省略时(与空值不同),TRIGGER_NESTLEVEL 返回调用堆栈上的触发器数(包括它本身)。当触发器所执行命令导致其它触发器激发,或导致了触发器的连续激发时,可省略 object_id



    注释


    如果在触发器之外执行,且 object_id 不是 NULL,则 TRIGGER_NESTLEVEL 返回 0。



    TRIGGER_NESTLEVEL 以对象 ID 作为其可选参数。当 object_id 显式指定为 NULL 或所引用的对象 ID 无效时,无论 TRIGGER_NESTLEVEL 是在触发器内部还是外部使用,均返回 NULL 值。



    示例


    A. 测试某个特定触发器的嵌套级


    IF ( (SELECT trigger_nestlevel( object_ID('xyz') ) ) > 5 )
      RAISERROR('Trigger xyz nested more than 5 levels.',16,-1)


    B. 测试所执行的全部触发器的嵌套级


    IF ( (SELECT trigger_nestlevel() ) > 5 )
      RAISERROR
        ('This statement nested over 5 levels of triggers.',16,-1)
    相关文章
    本页查看次数: