无法获取存储过程';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。