1.可以在前台程序中,直接用错误处理得到错误信息2.在查询分析器中可以直接看到错误信息3.可以用下面的语句得到错误的描述信息.
select * from master..sysmessages where error=@@error

解决方案 »

  1.   

    select description  from master..sysmessages where error=@@error
      

  2.   

    多谢高人指点!不好意思,追加两点疑问。1,这个“1.可以在前台程序中,直接用错误处理得到错误信息”是什么意思?
    是在存储过程以外,根据ErrorId取得错误信息么?2,出错的时候如果 RAISERROR (@@ERROR, 16, 1) 的话,
    是不是抛出去的就是出错的信息而不是errorId?
      

  3.   

    1.你有没有写过程序,如果有写过程序,应该会用到错误处理吧? 比如,VB可以用
      on error goto lb_err  --出错时,转到lb_err 处理
      ....查询之类的处理
    lb_err:
      msgbox error()  -- 显示错误
    2.RAISERROR (@@ERROR, 16, 1) 根本不能执行,你自己试试就知道了
      而且 RAISERROR 是用来抛出自定义错误信息的,具体的你看联机帮助
      

  4.   

    我一直写java+oracle,没有写过SP。
    用VB6.0+SQL Server是第一次。实在对不起!刚才就是看联机帮助才提出来能不能用 RAISERROR (@@ERROR, 16, 1)的。
    联机帮助里面这么写的:
    構文
    RAISERROR ( { msg_id | msg_str } { , severity , state }
        [, argument [,...n]]
        [ WITH option [ ,...n ] ] 不知道为什么不可以呢?
      

  5.   

    试了一下,说RAISERROR 的errorCode必须在 13000 到2147483647之间。
    不理解。