1、环境 数据库为Sql Server2008。 表(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 --辅助信息 RAISERROR('Houston,we have a problem',16,1) --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)的有点差异,但是基本思想差不多, 在最后捕获都可以得到异常。