调用另一个存储过程时从存储过程捕获错误输出

时间:2011-11-17 17:12:30

标签: sql-server-2008 stored-procedures

很抱歉这个问题很长,但是我有一个存储过程,它被一些业务对象调用,并且工作正常。我想扩展这个存储过程来调用一个新的存储过程(基本上它会将一些传入的数据插入到另一个表中),但这不起作用。如何从两个存储过程中获取错误输出?

1 个答案:

答案 0 :(得分:1)

在调用第一个proc的proc中存储输出参数中的错误代码,在第二个proc中返回将是错误代码然后输出参数将保存它调用的proc的返回值的值

希望这很清楚

您可以运行

的示例
--first proc
create proc prtest
as
return @@error
go

--2nd proc, which calls the 1st
create proc prtest2 @error int output
as
exec @error = prtest
return @@error
go

--call 2nd proc and show both statuses
declare @iReturn int, @iOutput int
exec @iReturn = prtest2 @error = @iOutput output

select @iReturn,@iOutput