SQL Server 异常处理机制(Begin try Begin Catch)
来源:互联网 发布:韩子高网络剧优酷视频 编辑:程序博客网 时间:2024/05/29 13:36
begin try--SQL end try begin catch --sql (处理出错动作)end catch
我们将可能会出错的sql 写在begin try...end try 之间,若出错,刚程序就跳到紧接着的begin try...end try 的beign catch...end catch中,执行beign catch...end catch错误处理SQL。try..catch 是可以嵌套的。在begin catch ...end catch中我们可以利用系统提供的下面四个函数得到出错信息:
error_number 返回错误代码
error_serverity 返回错误的严重级别
error_state 返回错误状态代码
error_message 返回完整的错误信息
上面的四个函数在同一个begin catch ...end catch可以在多次使用,值是不变的。
下面是一个简单的小例子。
begin tryselect 2/0end trybegin catchselect error_number() as error_number ,error_message() as error_message,error_state() as error_state,error_severity() as error_severityend catch
结果:
-----
error_number error_message error_state error_severity
8134 遇到以零作除数错误。 1 16
-------------------------------------------------------
不受 TRY…CATCH 构造影响的错误
TRY…CATCH 构造在下列情况下不捕获错误:
严重级别为 10 或更低的警告或信息性消息。
严重级别为 20 或更高且终止会话的 SQL Server 数据库引擎任务处理的错误。 如果所发生错误的严重级别为 20 或更高,而数据库连接未中断,则 TRY…CATCH 将处理该错误。
需要关注的消息,如客户端中断请求或客户端连接中断。
当系统管理员使用 KILL 语句终止会话时。
USE AdventureWorks;GOBEGIN TRY -- Generate a divide-by-zero error. SELECT 1/0;END TRYBEGIN CATCH SELECT ERROR_NUMBER() AS ErrorNumber, ERROR_SEVERITY() AS ErrorSeverity, ERROR_STATE() AS ErrorState, ERROR_PROCEDURE() AS ErrorProcedure, ERROR_LINE() AS ErrorLine, ERROR_MESSAGE() AS ErrorMessage;END CATCH;GO
USE AdventureWorks;GOBEGIN TRANSACTION;BEGIN TRY -- Generate a constraint violation error. DELETE FROM Production.Product WHERE ProductID = 980;END TRYBEGIN CATCH SELECT ERROR_NUMBER() AS ErrorNumber, ERROR_SEVERITY() AS ErrorSeverity, ERROR_STATE() as ErrorState, ERROR_PROCEDURE() as ErrorProcedure, ERROR_LINE() as ErrorLine, ERROR_MESSAGE() as ErrorMessage; IF @@TRANCOUNT > 0 ROLLBACK TRANSACTION;END CATCH;IF @@TRANCOUNT > 0 COMMIT TRANSACTION;GO
0 0
- SQL Server 异常处理机制(Begin try Begin Catch)
- SQL Server2005 异常处理机制(Begin try Begin Catch)
- SQL Server2005 异常处理机制(Begin try Begin Catch)
- SQL Server2005 异常处理机制(Begin try Begin Catch)
- (转) SQL Server2005 异常处理机制(Begin try Begin Catch)
- SQL 异常处理 Begin try end try begin catch end catch
- SQL 异常处理 Begin try end try begin catch end catch
- 使用TRY CATCH进行SQL Server异常处理<转载>
- [Java] try - catch 异常处理机制
- C++异常处理机制---try&throw&catch
- Java异常处理机制 try-catch-finally
- 使用try...catch的处理异常机制
- sql server try...catch使用 异常处理 不错的SQL错误处理
- 异常机制 try{}catch{}
- try catch 异常处理
- try-catch异常处理
- try catch 异常处理
- 异常处理(try catch)
- (4.2.0)GitHub开源项目收集
- 数列求和公式
- Bounding box regression详解
- web.xml 中的listener、 filter、servlet 加载顺序及其详解
- 抽象基类构造函数初探
- SQL Server 异常处理机制(Begin try Begin Catch)
- 2017顺丰科技java开发
- Linux下各类环境搭建
- hadoop 2.x之HDFS HA讲解之六 HA机器规划
- 使用gradle编译打包java项目
- 循环双链表的手动构建总结
- Python 实现火车票查询工具--实验楼
- 【NOIP2012模拟10.9】电费结算
- Android个人学习小结2016.8