2.在触发器中
if exists(select 1 from deleted/inserted)  --如果有处理当然要进行下去
  begin 
   ...
  end

解决方案 »

  1.   

    1、利用inserted、deleted表
    2、当指定列更新时才执行语句:if update(列) ...
      

  2.   

    2.问题
    在A,B上各定义FOR UPDATE触发器实现递归调用
    A:
    CREATE TRIGGER TRFORA ON A
    FOR UPDATE
    AS
    BEGIN
    UPDATE B SET ....
    .....
    END
    B:
    CREATE TRIGGER TRFORB ON B
    FOR UPDATE
    AS
    BEGIN
    UPDATE C SET ....
    .....
    END
      

  3.   

    2.问题
    这样行不行,在A,B,C上各定义FOR UPDATE触发器
    当发生UPDATE操作时,关闭递归调用功能。
    A:
    CREATE TRIGGER TRFORA ON A
    FOR UPDATE
    AS
    BEGIN
    UPDATE B SET ....
    UPDATE C SET ....
    .....
    END
    B:
    CREATE TRIGGER TRFORB ON B
    FOR UPDATE
    AS
    BEGIN
    UPDATE A SET ....
    UPDATE C SET ....
    .....
    END
    C:
    CREATE TRIGGER TRFORC ON C
    FOR UPDATE
    AS
    BEGIN
    UPDATE A SET ....
    UPDATE B SET ....
    .....
    END
    当在A,B,C任何一表上执行UPDATE操作时:
    SP_DBOPTION 'RECURSIVE TRIGGER','FALSE'
    ......
    SP_DBOPTION 'RECURSIVE TRIGGER','TRUE'
    可能笨拙点。