結果のテーブルを返す SQL SERVER 2008 ストアド プロシージャがある場合WHERE
、ストアド プロシージャ自体を編集せずに結果テーブルに対して句を実行することは可能ですか?
1233 次
4 に答える
4
直接ではありません。
出力を一時テーブルにリダイレクトします。そこから選択してフィルタリングする
CREATE TABLE #foo (...)
INSERT #foo EXEC bar @p1
SELECT * FROM @foo WHERE ...
于 2012-08-27T13:14:14.927 に答える
0
テーブル値関数を利用して、これを他の回答と組み合わせることができます...つまり、接続ローカルの一時テーブルを作成し、そのテーブルにストアドプロシージャ呼び出しの結果を入力して結果を返す TVF を作成します。 . 次に、SELECT
その TVF から目的のWHERE
句を適用して実行できます。
ただし、これは大規模なデータセットでは非常に遅くなる可能性があります!!
于 2012-08-27T13:20:41.597 に答える
0
#temp テーブルを作成してストアド プロシージャの結果を挿入し、そこからWHERE
句を選択することをお勧めします。
于 2012-08-27T13:15:12.353 に答える
0
Openrowset は、このように機能する私の頭に浮かぶオプションです
SELECT *
FROM OPENROWSET ('SQLOLEDB','Server=(local);TRUSTED_CONNECTION=YES;','set fmtonly off exec master.dbo.sp_who')
AS tbl
where句を直接適用できます。
于 2012-08-27T13:42:42.967 に答える