2

ストアドプロシージャの結果セットの結果である一時テーブルを作成しています。現在、create tableステートメントを使用しており、その後に。が続きinsert into....execます。

それは仕事を成し遂げますが、これについて他の方法があるかどうか私は興味がありましたか?ストアドプロシージャの結果セットがselectステートメントの役割を果たして、を実行できるようにしたいと思いselect intoます。そうすれば、事前にcreateステートメントを作成する必要がなくなります(ストアドプロシージャの列が変更された場合でも、必要な変更があります。)

私のニーズによりよく合うかもしれないこれについて他の方法があるなら、私はそれらについて聞いてみたいです。どうもありがとう。

4

2 に答える 2

1

いくつかの方法があります:テーブル変数CTE。それぞれに利点があり、あなたのシナリオでは、ソースデータが大量である場合は一時テーブルが最良のオプションであると私は信じる傾向があります。そうでなければ、私はCTEに傾倒するでしょう。

于 2010-03-17T19:57:15.333 に答える
1

1つのトリック:

SELECT * FROM OPENQUERY(ThisServerName, 'EXEC myDB.dbo.myStoredproc') 

ストアドプロシージャはテーブルやビューではないため、テーブルやビューのようにレコードセットを期待することはできません。「ストアドプロシージャの列が変更された場合」についてコメントするのは、この事実を見落としているためです。変更すべきではありません。

于 2010-03-17T20:13:28.663 に答える