首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

存储过程A调用存储过程B,B有2个返回值,一个是参数返回,一个是RETURN返回。蒙了!解决方法

2012-03-19 
存储过程A调用存储过程B,B有2个返回值,一个是参数返回,一个是RETURN返回。蒙了!RT存过BCREATEprocusp_B@Idi

存储过程A调用存储过程B,B有2个返回值,一个是参数返回,一个是RETURN返回。蒙了!
RT

存过B
CREATE       proc   usp_B
@Idint,
@Error       int   output
AS
      ...........
      ...........
      if   @@error   =   0
              begin
                  SET   @nCount   =   select   count(1)   from   [Table1]
                  SET   @Error   =   0
              end
      else
                  SET   @Error   =   1
      end
      return   @nCount
GO
在A中,需要得到@Error,来判断是否继续,如果继续,则需要得到@nCount这个参数。

各位帮帮忙,如何才能做到?谢谢了!!!
PS:我在A中Exec   @nCountRow   =   Exec   B   @id,@Error   output
得到的是@Error的值,是正确的,可以进行往下运行。但无法得到return   返回的数值。

[解决办法]
DROP PROC USP_B
GO


CREATE proc usp_B
@Idint,
@Error int output,
@NCOUNT INT OUTPUT
AS

if @@error = 0
begin
select @nCount = count(1) from SYSOBJECTS
SET @Error = 0
end
else
SET @Error = 1

GO


DECLARE
@Error int ,
@NCOUNT INT
EXEC USP_B 1,@ERROR OUTPUT, @NCOUNT OUTPUT
PRINT @ERROR
PRINT @NCOUNT

[解决办法]
@nCountRow变量就是返回值
@Error变量是output值
lz可以用
Exec @nCountRow = Exec B @id,@Error output
select @nCountRow
select @Error
查看这两个值
[解决办法]
@nCount有赋初值吗?
[解决办法]
来迟了~
[解决办法]
SQL语句调用另外一个存储过程,并且获取返回值例子:
USE [OMS_NET]
GO

DECLARE@return_value int,
@sPK varchar(50)

EXEC@return_value = [dbo].[mp_GetPKNo]
@sPK = @sPK OUTPUT

SELECT@sPK as N '@sPK '

SELECT 'Return Value ' = @return_value ----> return返回值

GO

热点排行