SQL Server - ストアドプロシージャのSELECT FROM

私は、行を返すストアドプロシージャを持っています。

CREATE PROCEDURE MyProc
AS
BEGIN
    SELECT * FROM MyTable
END

実際のプロシージャはもう少し複雑で、そのためにsprocが必要になります。

このプロシージャを呼び出して、出力を選択することは可能でしょうか?

次のようなものです。

SELECT * FROM (EXEC MyProc) AS TEMP

SELECT TOP X,ROW_NUMBER, そして追加のWHERE` 節を使ってデータをページングする必要がありますが、これらの値をパラメータとして渡したくありません。

ができます。

  1. ストアド・プロックの結果セットを格納するテーブル変数を作成し ストアドプロックの結果セットを保持するテーブル変数を作成し てから
  2. ストアドプロックの出力をテーブル変数に挿入します。 ストアドプロックの出力をテーブル変数に挿入します。 そして
  3. テーブル変数を を、他の テーブル...

... sql ....

Declare @T Table ([column definitions here])
Insert @T Exec storedProcname params 
Select * from @T Where ...
解説 (3)

Table-Value関数]1を使うか、EXECを一時テーブルに挿入するかです。

INSERT INTO #tab EXEC MyProc
解説 (1)

どうやら、ビューを使う必要があるようですね。 ビューは、クエリをテーブルとして表現し、ビューにクエリを実行させることができます。

解説 (0)