0

如何从存储过程中仅选择特定列:

DECLARE @return_value int

EXEC    @return_value = [dbo].[PositionsForNAV_PairTrades]
        @ComparePeriod = 'MTD',
        @OverrideCompareDate = '2010-12-31',
        @PortfolioId = '5',
        @OverrideStartDate = NULL,
        @NewPositionsOnly = 0,
        @ReportType = 0,
        @SourceID = 13,
        @SecurityType = 'Bond',
        @LongShort = 1
GO

它给了我很多列,请帮助我如何从结果中仅选择 3-4 个特定列。

4

1 回答 1

2

您不能为此使用返回值。存储过程有一个返回值,它用于错误代码/状态值,而不是数据。它也仅限于整数。

您需要创建一个#temp具有存储过程输出结构的表,然后执行以下操作:

INSERT #temp EXEC dbo.StoredProcedureName ...
SELECT col1, col2 FROM #temp;

或者,您可以使用各种其他技巧,例如OPENQUERY针对环回提供程序(我什至不打算展示,因为我认为这是一个坏主意)。

有关在过程之间共享数据的更多想法,请参阅:

http://www.sommarskog.se/share_data.html

于 2013-03-28T18:08:17.053 回答