私はuniqueidentifierをとり、テーブルを返すストアプロシージャを持っています。私は何をしようとしていることは、通常のテーブルのように、これらの結果を使用することですが、私はSQLはまだ限られているし、それを許可していません実現SELECTクエリ内でストアドプロシージャを呼び出す方法は?
例(まだ!):代替は
SELECT *
FROM MyTable MT
WHERE NOT EXISTS
(SELECT *
FROM MyStoredProc(MT.ID) MSP
WHERE MT.SomeData = MSP.SomeData)
ありますこの問題の解決策?また、ストアドプロシージャとは交換できないので、関数またはビューを使用することを推奨しないでください。私は、実際には、開発者がまだSQLの時代を考慮してこれを実装していないことにかなり驚いています。
本当にありがとうございます。
テーブル値関数に変換できない場合は、ストアドプロシージャの結果をtempテーブルに挿入し、そのtempテーブルを利用するという方法があります。 – pmbAustin
その問題は、ストアドプロシージャがMyTableテーブルの値として定義されているパラメータを受け取ることです。悲しいことに、SQLでは、この構文で一時表を塗りつぶしたり上書きすることはできません。 – AnotherProgrammer
次に、 '可能なすべてのパラメータ値'を持つテーブルをテーブルにダンプするためにストアドプロシージャを書き直す必要があります。申し訳ありませんが、実際にあなたが求めていることをやる他の方法はありません。 – pmbAustin