拼吾爱程序人生

首页 » 数据库编程 » SQL Server » Sql Server2005 Transact-SQL 学习总结之-TRY…CATCH
cobra - 2008-8-26 12:56:00
Transact-SQL 代码中的错误可使用 TRY…CATCH 构造处理,此功能类似于C#语言的异常处理功能。TRY…CATCH 构造包括两部分:一个 TRY 块和一个 CATCH 块

1.TRY...CATCH 块不处理导致数据库引擎关闭连接的严重性为 20 或更高的错误。但是,只要连接不关闭,TRY...CATCH 就会处理严重性为 20 或更高的错误。

2.严重性为 10 或更低的错误被视为警告或信息性消息,TRY...CATCH 块不处理此类错误。



Code

Code


TRY...CATCH 使用下列错误函数来捕获错误信息:

ERROR_NUMBER() 返回错误号。

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

ERROR_SEVERITY() 返回错误严重性。

ERROR_STATE() 返回错误状态号。

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

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




Code

Code


对于与TRY...CATCH 构造在同一执行级别发生的错误,TRY...CATCH 将不处理以下两类错误:

1.编译错误,例如阻止批处理执行的语法错误。

2.语句级重新编译过程中出现的错误,例如由于名称解析延迟而造成在编译后出现对象名解析错误。


Code

Code


如果某个错误在 TRY 块内的编写或语句级别重新编写过程中并在较低的执行级别(例如,执行 sp_executesql 或用户定义存储过程时)发生,则该错误会在低于 TRY…CATCH 构造的级别上发生,并由相关联的 CATCH 块处理。


Code

Code


(文/aierong  出处/博客园)

 您可能对 [SQL Server] 的这些文章也感兴趣:

SQL Server错误18456的解决方法
SQL Server 2005发布日期重新确认
SQL Server 7.0 入门(八)
Proxy Server和SQL Server在上数据库的安全复制
在SQL Server中保存和输出图片
道与魔:SqlServer存储过程/函数加/解密
在SQL SERVER如何添加数据用户
SQL Server全文检索简介
Web环境下SQL Server中数据的磁带备份与恢复
SQL Server 2008 RC0已经公开发布了
1
查看完整版本: Sql Server2005 Transact-SQL 学习总结之-TRY…CATCH
Modify by pin5i DZNT_ExpandPackage 2.1.3258 2007-2008 pin5i.com
  Total Unique Visitors: