[转载]存储过程异常处理

[转载]【存储过程】异常处理 – Shoubin – 博客园.

在前一篇博客中,江南听雨 提出存储过程中的异常处理。  借此写一点关于存储过程的东西。

还是以例子为主要内容。有不合适的地方请大家指出。

我使用的是SQLServer2008,所举的例子也是在这个环境下进行了。

1、表结构(Course)

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

执行结果:

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

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

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

赞(0) 打赏
分享到: 更多 (0)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏