SQL 中的try...catch

1、语法李和鑫。

1 BEGIN TRY
2  { sql_statement | statement_block }
3 END TRY
4 BEGIN CATCH
5  [ { sql_statement | statement_block } ]
6 END CATCH

 

2、错误检索信息。

在 CATCH 块的作用域内,可以使用以下系统函数来获取导致 CATCH 块执行的错误消息:

  • ERROR_NUMBER() 返回错误号。

  • ERROR_SEVERITY() 返回严重性。

  • ERROR_STATE() 返回错误状态号。

  • ERROR_PROCEDURE() 返回出现错误的存储过程或触发器的名称。

  • ERROR_LINE() 返回导致错误的例程中的行号。

  • ERROR_MESSAGE() 返回错误消息的完整文本。该文本可包括任何可替换参数所提供的值,如长度、对象名或时间。

 

3、例子。

 1 BEGIN TRY
 2 BEGIN TRANSACTION
 3 --Do something
 4 COMMIT TRANSACTION
 5 END TRY
 6 BEGIN CATCH
 7  rollback
 8  DECLARE @ErrMsg nvarchar(4000), @ErrSeverity int
 9  SELECT @ErrMsg = ERROR_MESSAGE(),@ErrSeverity = ERROR_SEVERITY()
10  RAISERROR(@ErrMsg, @ErrSeverity, 1)
11 END CATCH
posted @ 2012-09-18 11:33  Sprite.z  Views(371)  Comments(0Edit  收藏  举报