当前位置:  开发笔记 > 编程语言 > 正文

T-Sql如何从另一个存储过程中的storedproc返回一个表

如何解决《T-Sql如何从另一个存储过程中的storedproc返回一个表》经验,为你挑选了2个好方法。

我想做以下几点.基本上有一个存储过程调用另一个返回表的存储过程.这是怎么做到的?

    ALTER PROC [GETSomeStuff]
    AS
    BEGIN

    @table = exec CB_GetLedgerView @accountId, @fromDate, @toDate, @pageSize, @pageNumber, @filter, @status, @sortExpression, @sortOrder, @virtualCount OUTPUT

   Select * from @table
   --Do some other stuff here        
    END

cmsjr.. 22

存储过程的目标必须是临时表或实际表,以便您可以

    Insert into #table exec CB_GetLedgerView @accountId, @fromDate, 
@toDate, @pageSize, @pageNumber, 
@filter, @status, @sortExpression, 
@sortOrder, @virtualCount OUTPUT

如果存储过程的输出结果集与目标表中的序号位置和行数不匹配,请指定列列表.



1> cmsjr..:

存储过程的目标必须是临时表或实际表,以便您可以

    Insert into #table exec CB_GetLedgerView @accountId, @fromDate, 
@toDate, @pageSize, @pageNumber, 
@filter, @status, @sortExpression, 
@sortOrder, @virtualCount OUTPUT

如果存储过程的输出结果集与目标表中的序号位置和行数不匹配,请指定列列表.


例外情况是,如果在sproc中插入临时表,那么就不能将其输出插入到另一个临时表中

2> Dustin Oprea..:

至少如上所述,临时表方法对我不起作用。您可以轻松地使用变量。

DECLARE @return_value INT
DECLARE @tblOutputTable TABLE(Col1 BIT NOT NULL, Col2 INT NOT NULL)

INSERT INTO @tblOutputTable EXEC @return_value = [dbo].[SomeSp] @Param1 = 15, @Param2 = 2

推荐阅读
mobiledu2402851203
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有