2

我有一个呼吁在如下另一个存储过程的层次:无法在sql server中获取存储过程的结果变量?

1 
2 
    3 

现在我在做什么是: 首先我显示第一级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 

,这里是最后的3级:

Create proc proc_test1 
(
@Id uniqueidentifier, 
@value varchar(100) 
) 
as 
update tblsample set [email protected] where [email protected] 
select 1 

我有贴只是一个例子,但在-实际我的代码更复杂读,所以我有一些简单的方法来实现它让每一个可以很容易地理解它,

现在什么是我的亲blem: 每次我@ Outputvalue = 0时,我执行“proc_test3”,请帮助我,让我可以从这个概率出来,如果我在某些错误的方式做的事情,请让我知道正确的方式,请帮我解决问题。

+0

@GSerg嗯确定,但如何克服能否请您解释一下,回答我,否则我怎么能现在解决这个问题,请.....引导我 – 2013-04-25 10:46:02

回答

0

尝试使用RETURN建设 -

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 [email protected] 
    WHERE [email protected] 

    RETURN 1 

END 
+0

@Raman,如果你可以取消删除这个问题:http://stackoverflow.com/questions/16211786/not-able-to-get-the-stored-procedures-result-in-variable,我会尽力帮助你的。 – Devart 2013-04-25 10:51:34

+0

确定..它被我的初级开发者问..我不知道他是否阐述得很好。顺便说一下我问他恢复了此questiopn – 2013-04-25 10:55:08

+0

不客气@raman。 – Devart 2013-04-25 11:06:33

相关问题