可以使用 TRY...CATCH 构造(类似于 Microsoft Visual C++ 和 Microsoft Visual C# 语言的异常处理功能)来处理 Transact-SQL 代码中的错误。TRY…CATCH 构造包括两部分:一个 TRY 块和一个 CATCH 块。如果在 TRY 块中所包含的 Transact-SQL 语句中检测到错误条件,控制将被传递到 CATCH 块(可在此块中处理该错误)。
CATCH 块处理该异常错误后,控制将被传递到 END CATCH 语句后面的第一个 Transact-SQL 语句。如果 END CATCH 语句是存储过程或触发器中的最后一条语句,控制将返回到调用该存储过程或触发器的代码。将不执行 TRY 块中生成错误的语句后面的 Transact-SQL 语句。
- ERROR_NUMBER() 返回错误号。
- ERROR_MESSAGE() 返回错误消息的完整文本。此文本包括为任何可替换参数(如长度、对象名称或时间)提供的值。
- ERROR_SEVERITY() 返回错误严重性。
- ERROR_STATE() 返回错误状态号。
- ERROR_LINE() 返回导致错误的例程中的行号。
- ERROR_PROCEDURE() 返回出现错误的存储过程或触发器的名称。