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