MSSQL 2005/2008 中的错误处理机制

本文介绍SQL中使用try-catch结构进行错误处理的方法。通过示例展示了如何捕获并处理除以零这样的运行时错误,并获取详细的错误信息,如错误代码、严重级别等。

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 返回完整的错误信息

ERROR_PROCEDURE() AS ErrorProcedure, 返回存储过程名称
ERROR_LINE() AS ErrorLine, 返回出错的行

 

上面的四个函数在同一个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

 

转载于:https://www.cnblogs.com/rainnight/archive/2010/08/20/1804715.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值