可不可以在存储过程中去掉异常信息,当界面调用存储过程时,不能捕获存储过程的异常?  1,用什么设置选项可以去掉外界程序捕获存储过程的异常。(如:存储过程已经做了错误处理,就不需要界面再捕获这个异常了)
  2,用什么设定方式可以去掉某个特定的messageid的异常消息。(如:2627,主键异常)

解决方案 »

  1.   

    2000中无法做到2005可以实现绝大部分错误的截获, 即用:
    BEGIN TRY
    ....你的处理语句
    END TRY
    BEGIN CATCH
       IF ERROR_NUMBER() = 123  -- 处理特定的错误
       BEGIN
           RAISERROR(....)  -- 处理的方法是将其抛给调用者
       END
    END CATCH  -- 其他错误不处理, 因为不会抛出错误信息给调用者
      

  2.   

    与2000一样, 在2005中,对于严重的错误, 例如有的错误会导致连接中断, 这样错误是无法在sql server中完成处理的.
      

  3.   

    1,是在2000中,
    2,是insert,update类型
    3,屏蔽某个类型的错误id,如2627,
    4,形式可能是set xxxx 2627 off,或xxxxx(2627)=off之类的,