Sql server 从存储过程返回结果集

Sql server 从存储过程返回结果集,sql-server,stored-procedures,Sql Server,Stored Procedures,假设我为存储过程做了必要的声明,然后开始存储过程 BEGIN IF (@TYPE = 0) BEGIN SELECT @AMOUNT = ((@TOTAL_MONEY )/(12)) SELECT @INTEREST_AMOUNT = 0 SELECT @TOTAL_MONEY AS TOTAL_MONEY , @AMOUNT AS AMOUNT , @INTEREST_AMOUNT AS INTEREST_AM

假设我为存储过程做了必要的声明,然后开始存储过程

BEGIN

IF (@TYPE = 0)  
    BEGIN
        SELECT @AMOUNT = ((@TOTAL_MONEY )/(12))
        SELECT @INTEREST_AMOUNT = 0           
        SELECT @TOTAL_MONEY AS TOTAL_MONEY , @AMOUNT AS AMOUNT , @INTEREST_AMOUNT AS INTEREST_AMOUNT , DATEADD(m,0,@BEGIN_DATE) AS DATE_

        @ORDER_NO=1 
        WHILE ((@ORDER_NO) <= ((@COUNT) -1 ) )  
            BEGIN   
                SELECT @INTEREST_AMOUNT =  (@TOTAL_MONEY - (@AMOUNT))* (@INTEREST_RATE/100)
                SELECT @MONEY AS MONEY_ , @AMOUNT AS PROMISE_AMOUNT , @INTEREST_AMOUNT AS INTEREST_AMOUNT , DATEADD(m,@COUNT,@BEGIN_DATE) AS DATE_
                SELECT @COUNT=@COUNT -1
            END                     
    END 
 END
DECLARE @TEMP TABLE
(

    TOTAL_MONEY decimal (19,3), 
    AMOUNT decimal (19,3), 
    INTEREST_AMOUNT decimal (19,3), 
    DATE_ date          

);
INSERT @TEMP  EXEC --HERE I CALL MY STORED PROCESURE with parameters IE: spinterest ..., ...., ...
SELECT * FROM @TEMP;

将代码的最后两行更改为以下一行:

EXEC --HERE I CALL MY STORED PROCESURE with parameters IE: spinterest ..., ...., ...

我不知道您的参数是什么样子的,但是,您说过它们已经设置好了。

亲爱的Michael,您不明白我想问的问题。当我使用临时表并从中选择时,我会得到一个结果集。但我不想使用temp table,但我想直接从过程中获取结果集,但使用while循环和select inside,我获取结果,但单独指的是逐行,而不是在一个结果集中。如何在不使用declare temp table部分的情况下从sp获取结果集?提前感谢。@modestandcutegirl:simple:不要使用while循环(这是非常糟糕的RBAR行处理,应该不惜一切代价避免)和临时表-只需创建一个
SELECT
,返回您感兴趣的数据……在我的情况下,我将如何实现它:(我的意思是,我在我的程序中使用了while,这不是一个问题,但它是一个连续的句子。请改写。