无法获取存储过程';sql server中的结果变量是什么?

无法获取存储过程';sql server中的结果变量是什么?,sql,sql-server,sql-server-2008,variables,sql-server-2008-r2,Sql,Sql Server,Sql Server 2008,Variables,Sql Server 2008 R2,我有一个存储过程的层次结构,它们相互调用,如下所示: 1 2 3 现在我要做的是: 首先,我展示的是1级sp Create proc proc_test3 ( @Id uniqueidentifier, @value varchar(100) ) as declare @Outputvalue varchar(100) if @Id='2' begin exec @Outputvalue= proc_test2 @Id @value select @Outputvalue end 这是

我有一个存储过程的层次结构,它们相互调用,如下所示:

1
 2
  3
现在我要做的是: 首先,我展示的是1级sp

Create proc proc_test3
(
@Id uniqueidentifier,
@value varchar(100)
)
as
declare @Outputvalue varchar(100)
if @Id='2'
begin
exec @Outputvalue= proc_test2 @Id @value
select @Outputvalue
end
这是第二个层次:

Create proc proc_test2
(
@Id uniqueidentifier,
@value varchar(100)
)
as
declare @Outputvalue varchar(100)
if @Id='2'
begin
exec @Outputvalue= proc_test1 @Id @value
select @Outputvalue
end
这是最后一个第三级:

Create proc proc_test1
(
@Id uniqueidentifier,
@value varchar(100)
)
as
update tblsample set value=@value where id=@Id
select 1
我只粘贴了一个示例,但实际上我的代码阅读起来非常复杂,所以我以更简单的方式实现了它,这样每个人都可以轻松地理解它

现在我的问题是:
每次我在执行“proc_test3”时得到@Outputvalue=0,请帮助我走出这个问题,如果我以错误的方式做了一些事情,请告诉我正确的方式,请帮助我解决问题。

尝试使用返回结构-

CREATE PROC proc_test3
(
    @Id UNIQUEIDENTIFIER,
    @value VARCHAR(100)
)
AS BEGIN

    IF @Id = '2' BEGIN

        DECLARE @Outputvalue VARCHAR(100)
        EXEC @Outputvalue = dbo.proc_test2 @Id, @value
        RETURN @Outputvalue

    END

END


CREATE PROC proc_test2
(
    @Id UNIQUEIDENTIFIER,
    @value VARCHAR(100)
)
AS BEGIN

    IF @Id='2' BEGIN

        DECLARE @Outputvalue VARCHAR(100)
        EXEC @Outputvalue= proc_test1 @Id, @value
        RETURN @Outputvalue

    END

END


CREATE PROC proc_test1
(
    @Id UNIQUEIDENTIFIER,
    @value VARCHAR(100)
)
AS BEGIN

    UPDATE tblsample 
    SET value=@value 
    WHERE id=@Id

    RETURN 1

END

@GSerg嗯,好的,但是如何克服这个问题,你能给我解释一下答案吗,或者我现在如何解决这个问题,。。。。。请引导me@Raman,如果您可以取消删除以下问题:,我会尽力帮助您。好的。。这是由我的初级开发人员提出的。。我不知道他是否详细阐述了这一点。顺便说一句,我要他取消这个问题。不客气@raman。