SQL Server 2005,如何可以使得触发器不抛出异常?以避免正常的INSERT等语句出现执行失败的情况。

解决方案 »

  1.   

    我在 A 表上使用触发器与 B 表进行同步。在触发器的插入语句里面我使用了 try-catch但当 B 表不存在的时候,触发器依然会抛出异常致使正常的SQL语句执行出错。好像 try-catch 不能捕获到这个异常。
      

  2.   

    那是编译期间的错误,只有 执行计划中的错误 ,才能被catch 到
      

  3.   

    应该先判断B表是否存在if exists (select 1 from sys.tables where name='B')
       insert b ...
      

  4.   


    这个我考虑过,但我想要一种一劳永逸的方法。比如表不存在的异常、字段不存在的异常等可能存在的错误通过 try 直接捕获。谢谢。
      

  5.   

    try-catch  不是万能的,有些高级别的错误它还是会抛出.