SQL Server数据库存储过程的异常处理

数据库 SQL Server
本文我们详细介绍了SQL Server数据库存储过程的异常处理过程,了解了异常处理的过程能够帮助我们方便地找出问题的根源,希望能够对您有所帮助。

SQL Server数据库存储过程异常处理是非常重要的,明确的异常提示能够帮助我们快速地找到问题的根源,节省很多时间。本文我们就以一个插入数据为例来说明SQL Server中的存储过程怎么捕获异常的,接下来就让我们来一起了解一下这部分内容吧。

1、环境

数据库为SQL Server 2008,表的结构为:

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 

--辅助信息

  1. select ERROR_LINE() as Line,  
  2. ERROR_MESSAGE() as message1,  
  3. ERROR_NUMBER() as number,  
  4. ERROR_PROCEDURE() as proc1,  
  5. ERROR_SEVERITY() as severity,  
  6. ERROR_STATE() as state1  
  7. 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)的有点差异,但是基本思想差不多, 在***捕获都可以得到异常。 

关于SQL Server数据库存储过程的异常处理的知识就介绍到这里了,希望本次的介绍能够对您有所帮助。

【编辑推荐】

  1. SQL Server数据库ROW_NUMBER()函数使用详解
  2. 详解xtrabackup对MySQL进行备份和恢复的全过程
  3. SQL Server数据库DATEDIFF的参数介绍及使用示例
  4. SQL Server将视图或表的记录不重复地插入到另一个表
  5. SQL Server中CROSS APPLY和OUTER APPLY的应用详解

 

责任编辑:赵鹏 来源: 博客园
相关推荐

2011-08-15 15:56:31

SQL Server

2011-02-25 17:47:44

数据库存储编写

2010-06-17 11:08:07

SQL Server

2011-07-13 16:19:54

存储过程SQL Server数

2011-09-01 14:00:11

SQL Server 存储过程显示表结构

2010-09-14 10:47:45

sql server存

2010-07-15 12:38:14

SQL Server存

2011-05-17 15:30:27

Oracle数据库ADO

2011-07-28 14:31:47

SQL Server数存储过程

2011-03-24 13:38:47

SQL Server 存储分页

2011-08-29 10:55:03

SQL Server分页存储过程优化效率分

2010-09-06 11:05:05

SQL SERVER语句

2011-07-19 15:18:46

存储过程sql语句

2010-06-28 13:45:16

SQL Server

2009-08-06 16:44:06

2009-08-12 17:02:16

.NET向SQL Se

2017-09-03 15:41:31

数据库存储分布式

2010-11-10 13:03:15

SQL Server存

2010-11-12 09:46:55

Sql Server存

2010-09-14 10:16:57

sql server
点赞
收藏

51CTO技术栈公众号