存贮过程中如何做容错处理呢?不论什么错误,都转去执行一段错误处理?
-------------------
VB中有一种容错处理语句:
on error goto errhandler
  --这里是代码
errhandler:
  --下面是错误处理代码我想问,写sql存贮过程时,如何实现这种功能呢?即只要出现错误,就转到一段错误处理程序那里?

解决方案 »

  1.   

    begin try
    (
    select 1/0
    )
    end try
    begin catch
    (
    select ERROR_MESSAGE() 
    )
    end catchhttp://msdn.microsoft.com/zh-cn/library/ms179296(SQL.90).aspx
      

  2.   

    啊,我错了,2000没有
    但是你可以这样处理你的情况:
    begin traninsert into student values('dsa','sad',2)
    declare @id int
    select @id=max(id) from student
    insert into jl(jnr) values(@id)IF @@Error<>0
    BEGIN
    PRINT '有错误,回滚'
    ROLLBACK TRANSACTION--事务回滚语句
    END
    ELSE
    BEGIN
    PRINT '成功,提交'
    COMMIT TRANSACTION--事务提交语句
    ENDend 
      

  3.   

    2000估计没有 最好的办法是你不要让程序出错 再说vb中的goto 也不提倡使用
      

  4.   

    这段代码,如果第一个insert成功,而第二个insert由于唯一性什么的失败了@@error就不是0了,就会执行ROLLBACK TRANSACTION,这样第一条insert的数据会被撤销,一句话两个insert必须同时成功,有一个失败,另一个的操作撤消!
      

  5.   

    @@error里如不是0,就是一个出错代码
      

  6.   

    goto 
    http://blog.csdn.net/xys_777/archive/2010/06/09/5657605.aspx
      

  7.   

    2000的在存储过程中一样可以用GOTO,10L已有例子。
      

  8.   

    2000只能IF @@ERROR <> O