如何从存储过程中仅选择特定列:
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个特定的列。
发布于 2013-03-29 02:08:17
您不能为此使用返回值。存储过程只有一个返回值,它用于错误代码/状态值,而不是数据。它也被限制为整数。
您需要创建一个具有存储过程输出结构的#temp表,然后执行以下操作:
INSERT #temp EXEC dbo.StoredProcedureName ...
SELECT col1, col2 FROM #temp;或者,您可以使用其他各种技巧,比如使用OPENQUERY来对抗回送提供程序(我甚至不打算展示这一点,因为我认为这不是一个好主意)。
有关在过程之间共享数据的更多想法,请参阅:
http://www.sommarskog.se/share_data.html
https://stackoverflow.com/questions/15688852
复制相似问题