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 に答える