如何在存储过程外部获取或判断存储过程中发生的错误 @@ERROR需要在每句SQL后检测2005/2008可以用Try-Catch 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 declare @a int--执行存储过程exec @a = my_proc--出错if @a <> 0print 'error' create proc paasbegin declare @err int exec pb @err output select @errendgocreate proc pb@err int outputasbegin select 'hoho' set @err=@@errorendgo--测试:exec pa/*-----------hoho(1 row(s) affected)-----------0(1 row(s) affected)*/ RAISERROR返回用户定义的错误信息并设系统标志,记录发生错误。通过使用 RAISERROR 语句,客户端可以从 sysmessages 表中检索条目,或者使用用户指定的严重度和状态信息动态地生成一条消息。这条消息在定义后就作为服务器错误信息返回给客户端。 这个SQL 2000 语句怎么写啊? 2005 的 ROW_NUMBER() 分页的效率问题 获取最后插入的数据的ID SQLServer2000 Text字段被截断的问题 用sqlserver存储过程重建索引(急) SQL Server疑难问题 SQLSERVER2000验证 同一个数据库的同一个表,怎么复制前几条记录增加到后面去 关于索引和修改 select语句根据字段进行不同操作 sql_server 2000中的insert插入多条记录问题 关于sql2005一个本地连接问题
exec @a = my_proc--出错
if @a <> 0
print 'error'
as
begin
declare @err int
exec pb @err output
select @err
end
gocreate proc pb
@err int output
as
begin
select 'hoho'
set @err=@@error
end
go
--测试:
exec pa
/*-----------
hoho(1 row(s) affected)
-----------
0(1 row(s) affected)
*/
返回用户定义的错误信息并设系统标志,记录发生错误。通过使用 RAISERROR 语句,客户端可以从 sysmessages 表中检索条目,或者使用用户指定的严重度和状态信息动态地生成一条消息。这条消息在定义后就作为服务器错误信息返回给客户端。