SQL Server2005 异常处理机制
来源:互联网 发布:淘宝网上买东西 编辑:程序博客网 时间:2024/05/20 17:08
原帖地址:http://blog.csdn.net/htl258/article/details/4125446
begin try
--SQL
end trybegin 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 try
select 2/0
end try
begin catch
select error_number() as error_number ,
error_message() as error_message,
error_state() as error_state,
error_severity() as error_severity
end 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;
GO
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_PROCEDURE() AS ErrorProcedure,
ERROR_LINE() AS ErrorLine,
ERROR_MESSAGE() AS ErrorMessage;
END CATCH;
GO
USE AdventureWorks;
GO
BEGIN TRANSACTION;
BEGIN TRY
-- Generate a constraint violation error.
DELETE FROM Production.Product
WHERE ProductID = 980;
END TRY
BEGIN 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
- SQL Server2005 异常处理机制
- SQL Server2005 异常处理机制
- 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 Server2005报出奇怪异常
- PL/SQL 异常错误处理机制
- sql server2005出现异常及解决方法
- 解决和处理SQL server2005死锁
- PL/SQL的异常处理机制的初步探讨
- PL/SQL的异常处理机制的初步探讨
- SQL Server 异常处理机制(Begin try Begin Catch)
- C#异常处理机制
- 异常处理机制
- 异常处理机制
- C++异常处理机制
- 异常处理机制
- MySQL性能优化的最佳20+条经验
- SQL server经典电子书、工具和视频教程汇总
- OpenRisc-52-run openrisc&orpmon on ml501 board
- sqr
- 浅析杀毒软件开发原理(之查毒引擎)
- SQL Server2005 异常处理机制
- CUDA SDK VolumeRender 分析
- Hello World !
- UITableView划动删除的实现
- [leetCode]Search in Rotated Sorted Array
- 大话设计模式--抽象工厂模式 Abstract Factory -- C++实现实例
- php session 跨页面传值
- 设计模式中类的关系
- tcp http 杂知识