if @@error<>1
begin
  ......
end可以捕捉存储过程的部分异常代码,可以查到信息

解决方案 »

  1.   

    可以在存储过程建立错误捕捉机制,有错误时return返回代码,然后用
    exec 变量=存储过程
    的方式得到错误信息。
      

  2.   

    可以用profiler(事件探查器)来跟踪存储过程的运行。
      

  3.   

    "用profiler(事件探查器)来跟踪存储过程的运行"
    会占用系统很大的资源,我不能采用这种方式
      

  4.   

    谁能帮我, 谢了。
    http://www.csdn.net/expert/topic/970/970422.xml?temp=.1464044
      

  5.   

    SQL SERVER好像无法返回所有的SP的ERROR MESSAGE,可以使用RETUREN CODE OR PRINT来返回MESSAGE.
      

  6.   

    其实不知道你具体是要做什么,所以也是不知道什么方法对你是合适的,下面的方法你看能不能对你有帮助:
    1、master数据库里有一个表sysmessages,你可以在里面加入你自己定义的错误信息。
    2、你可以建立一个警告,在捕捉到某错误代号时做些处理(比如通知、执行JPB)。
    3、在所有存储过程里加入语句,当有错误时用RAISERROR来返回错误。你还可以试下用sqldiag,下面是帮助里的说明:
    sqldiag实用工具收集并存储诊断信息和查询历史跟踪(如果正在运行)的内容。输出文件包含错误日志、来自 sp_configure 的输出结果以及附加的版本信息。如果当此实用工具被唤醒调用时查询历史跟踪正在运行,则跟踪文件将包含最后 100 个 SQL 事件和异常错误。另外还可以用黑盒来查看错误事件,搜索"blackbox"可以找到相关的说明。
      

  7.   

    笔误:执行JPB  改为:执行JOB