zoukankan      html  css  js  c++  java
  • 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即可。

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

      代码如下:

     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)的有点差异,但是基本思想差不多, 在最后捕获都可以得到异常。 

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

     原文地址:http://www.cnblogs.com/sshoub/archive/2011/08/12/2136267.html

  • 相关阅读:
    多态
    SSM前后端分离 ssm+html+js(ajax) 这种controll层的返回值是结合或者网址
    Eclipse创建ssm项目
    在idea中创建Maven项目
    Maven的安装和配置
    IDEA修改快捷键!和一些常用的快捷键
    mysql数据库的安装和连接测试并给root用户赋密码
    ssm动态sql语句
    Java基础--JDBC
    Java基础--注解、反射
  • 原文地址:https://www.cnblogs.com/Godblessyou/p/2297371.html
Copyright © 2011-2022 走看看