SQL Server 流程控制语句(八):Try ... catch 语句
当执行 try 的语法块中的代码出现错误时,系统会把控制传递给 catch 语法块去处理。
一、语法
BEGIN TRY
{sql_statement|statement_block}
END TRY
BEGIN CATCH
{sql_statement|statement_block}
END CATCH
[;]
- sql_statement:任何 T-SQL 语句。
- statement_block:批处理或包含于 BEGIN ... END 块中的任何 T-SQL 语句组。
二、实例
use db_student
BEGIN TRY
-- Generate a divide-by-zero error.
SELECT 1/0;
END TRY
BEGIN CATCH
SELECT
ERROR_NUMBER() AS ErrorNumber, --返回错误号
ERROR_SEVERITY() AS ErrorSeverity, --返回严重性
ERROR_STATE() AS ErrorState, --返回错误状态号
ERROR_LINE() AS ErrorLine, --返回导致错误的例程中的行号
ERROR_MESSAGE() AS ErrorMessage; --返回错误消息的完整文本
END CATCH;
GO