首页 新闻 搜索 专区 学院

SQL 存储过程中接收另一个存储过程的多个输出参数,求大牛, 100结贴!!!!!!######

0
悬赏园豆:50 [已解决问题] 解决于 2013-08-22 13:27
 1 ALTER Procedure [dbo].[Bank_NewOrder_HXxh]
 2 @i_op_no int ,
 3 @v_op_pass Vpass,
 4 @i_client_no Varchar(20),
 5 @InOut char(1),
 6 @Amount int output,
 7 @BankPsd varchar(64) output ,
 8 @UserMemos varchar(200),
 9 @BankId char(1)
10 
11 AS
12 Declare
13 @Res Int Exec @RES=fyfun.dbo.Bank_NewOrder @i_op_no,@v_op_pass,@i_client_no,@InOut,@Amount,@BankPsd,@UserMemos,@BankId
14 Return @RES

求教大牛,本存储过程是调用另一个数据库的存储过程

@Amount,
@BankPsd 这两个参数在这里我怎么接收,同时
@RES后台也用要到不能去掉
这存储过程应该怎么改呢
t101lian的主页 t101lian | 初学一级 | 园豆:18
提问于:2013-08-21 22:49
< >
分享
最佳答案
0
create procedure [dbo].[sp_test1]
@output varchar(20) OUTPUT
as
set @output='Hello!';
    
create procedure [dbo].[sp_test2]
as
declare @output1 varchar(20);
exec dbo.sp_test1 @output1 output;
print @output1;
收获园豆:30
Yu | 专家六级 |园豆:12944 | 2013-08-22 08:56
其他回答(2)
0

用临时表,给你个示例,你自己套:

CREATE PROC p1
AS
BEGIN
    SELECT 1
END
GO

Create PROC p2
AS
BEGIN
    CREATE TABLE #tt(id int)
    INSERT INTO #tt
    EXEC p1    

    SELECT * FROM #tt
END
GO
收获园豆:15
幻天芒 | 园豆:36608 (高人七级) | 2013-08-21 23:52

不明白,, 新手不会套

支持(0) 反对(0) t101lian | 园豆:18 (初学一级) | 2013-08-22 08:46

@t101lian: 大概就是用临时表将proc2的查询结果保存起来,然后再proc1中,查这个临时表的数据。

注:在proc2中,就不要用output参数了,直接用select  * 返回结果即可~

支持(0) 反对(0) 幻天芒 | 园豆:36608 (高人七级) | 2013-08-22 12:00
0

二个过程分开写好了,还简洁一些. 也没有太多的耦合.

收获园豆:5
Albert Fei | 园豆:2102 (老鸟四级) | 2013-08-22 10:38
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册