我虚构了定制的错误信息,这样它就以多行显示,非常直观。(你可能希望保存这段代码,将来用它作为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的新功能了。
责任编辑:张琎
用户评论