了解SQL Server 2005中的新Try/Catch语句

开发者在线 Builder.com.cn 更新时间:2006-09-06作者:Builder 来源:

我虚构了定制的错误信息,这样它就以多行显示,非常直观。(你可能希望保存这段代码,将来用它作为Catch块模板。)代码显示的结果如下:

Begin Try
Begin CatchMsg 50000, Level 16, State 2, Line 20 Error(8134): Divide by zero error encountered.
Severity: 16
State:    1
Procedure: None.
Line #:    4
Variable @int = 0
Code Completed

注意:应用程序代码一般会使用事务。只执行Catch块并不能自动执行后退操作,你必须自动完成后退操作,其操作过程与下面这段普通代码类似:

BEGIN TRY  
BEGIN TRANSACTION   
[Do some stuff here]   
COMMIT TRANSACTION
END TRY
BEGIN CATCH   
Print 'Begin Catch'   
ROLLBACK TRANSACTION   
[Do some stuff here]
END CATCH

SQL Server 2005中的错误处理方法已有了很大的改善。如果你还在用旧办法处理错误,工具包中只有一个Raiserror()语句,该是时候应用SQL Server 2005的新功能了。

责任编辑:张琎

查看本文的国际来源

用户评论

  • 用户名
  • 评论内容