天下网吧 >> 网吧天地 >> 网吧技术 >> 网吧系统 >> 正文

SQL Server存储过程的异常处理

欢迎进入Windows社区论坛,与300万技术人员互动交流 >>进入

  编程的异常处理很重要,当然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即可。

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

  代码如下:

  1.Create proc sp_Insert_Course

  2.    @No char(10),

  3.    @Name varchar(20),

  4.    @Comment varchar(50),

  5.    @rtn int output

  6.as

  7.    begin try

  8.        insert into Course values(@No,@Name,@Comment)

  9.        set @rtn=1

  10.    end try

  11.    begin catch

  12.        set @rtn=@@ERROR

  13.

  14.        --辅助信息

  15.        --select ERROR_LINE() as Line,

  16.        --    ERROR_MESSAGE() as message1,

  17.        --    ERROR_NUMBER() as number,

  18.        --    ERROR_PROCEDURE() as proc1,

  19.        --    ERROR_SEVERITY() as severity,

  20.        --    ERROR_STATE() as state1

  21.    end catch

  3、存储过程执行

  相关代码如下:

  1.declare

  2.    @rtn int

  3.exec sp_Insert_Course '114','语文','',@rtn output

  4.print @rtn

  执行结果:

  正常的情况下,返回值为1,如果已经存在编号为"114"的数据,就会返回 ERROR_CODE:2627,其他的异常情况会返回相应的代码。

  4、说明

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

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

  希望能够对大家有所帮助。

本文来源:佚名 作者:中国IT实验室收集整理

声明
声明:本站所发表的文章、评论及图片仅代表作者本人观点,与本站立场无关。若文章侵犯了您的相关权益,请及时与我们联系,我们会及时处理,感谢您对本站的支持!联系email:support@txwb.com,系统开号,技术支持,服务联系QQ:1175525021本站所有有注明来源为天下网吧或天下网吧论坛的原创作品,各位转载时请注明来源链接!
天下网吧·网吧天下
  • 本周热门
  • 本月热门
  • 阅读排行