使用Try…Catch块进行T-SQL错误处理
错误和异常处理对于所有好的编程规范都是至关重要的。现在使用SQL Server 2005提供的Try…Catch块,你可以实现更好的错误处理……
这个过程可以在你的Catch块中被调用,用来返回和记录错误的详细信息。
BEGIN TRY
--在这里插入代码:当错误发生时,控制权将被转到Catch块
END TRY
BEGIN CATCH
--这个过程将会记录错误并将详细信息返回给调用它的应用程序
exec spLogError
END CATCH
使用XACT_STATE()函数
还有一个错误函数我们在前面没有讨论,那就是XACT_STATE()函数。它可以在你的Catch块中被调用,返回你的过程中事务的准确状态。XACT_STATE()函数的返回值及其意义如下所示:
1 : 有一个活动的事务,它可以被提交或者回滚。
0 : 没有活动的事务。
-1 : 有一个活动的事务,但由于有错误发生,事务不能被提交。
基于这些返回值,你就可以处理你的食物。如果返回值是1,你可以正常的提交或者回滚。如果返回值是0,则并没有打开的事务,如果尝试提交将会产生一个错误。返回值-1比较特殊,它意味着有一个事物,但是它不能被提交。如果返回值是-1的话,你也不能回滚到一个保存点,而只能将整个事务进行回滚。
错误和异常处理对于所有好的编程规范都是至关重要的。现在使用SQL Server 2005提供的Try…Catch块,你可以实现更好的错误处理。