SQLServer存储过程之异常处理

简介

      编程的异常处理很重要,当然Sql语句中存储过程的异常处理也很重要,明确的异常提示能够快速的找到问题的根源,节省很多时间。

     下面,我就以一个插入数据为例来说明Sql Server中的存储过程怎么捕获异常的 。

1、环境

(1)数据库为Sql Server2008。

(2)表(Course)结构为:

No char(10)  primary key
Name varchar(20)
Comment varchar(50)

2、存储过程

     就以插入数据为例,其他的可以照着写就行了。

     编程语言都有异常的捕获与处理, 在 SqlServer2008 中也是这样子的。

     对会出现异常的语句加上 begin try……end try ,然后进行异常捕捉:begin catch……end catch即可。

     错误代码详解 很容易就能找到。

代码如下:

  Create proc sp_Insert_Course
      @No char(10),
      @Name varchar(20),
      @Comment varchar(50),
      @rtn int output
  as
      begin try
          insert into Course values(@No,@Name,@Comment)
          set @rtn=1
     end try
     begin catch
         set @rtn=@@ERROR
         
         --辅助信息
         --select ERROR_LINE() as Line,
         --    ERROR_MESSAGE() as message1,
         --    ERROR_NUMBER() as number,
         --    ERROR_PROCEDURE() as proc1,
         --    ERROR_SEVERITY() as severity,
         --    ERROR_STATE() as state1
     end catch

3、存储过程执行

相关代码如下:

 declare
     @rtn int
 exec sp_Insert_Course '114','语文','',@rtn output
 print @rtn

执行结果:

     正常的情况下,返回值为1,

     如果已经存在编号为“114”的数据,就会返回 ERROR_CODE:2627,

     其他的异常情况会返回相应的代码

4、说明

     如果程序有异常,把异常代码返回,然后再进行相关的处理即可。

     SQL Server中的异常处理和别的数据库(如Oracle)的有点差异,但是基本思想差不多, 在最后捕获都可以得到异常。

  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值