私は CTE を使用するのが大好きです。彼らはとても素晴らしいユーティリティです!
この特定の問題については、反対することをお勧めします。テーブルに相当するデータを別のストアド プロシージャに「転送」していることを考えると、少し異なる方法で処理する必要があると思います。
最初のプロシージャを考えてみましょう:
IF OBJECT_ID('SomeTempTable') IS NOT NULL DROP SomeTempTable;
SELECT
*
INTO SomeTempTable
FROM
YourOtherTable
EXEC YourSecondProcedureName
テーブルに必要な範囲に注意する必要があることに注意してください。あなたがそのことを考慮するまで、私は作業コードを含めていません。詳細については、こちらを参照してください:一時テーブルのスコープ
また、"YourSecondProcedureName" は現在、テーブル値を取らないことに注意してください。代わりに (そして適切な範囲で)、一時テーブルから名前で呼び出すことができます。また、完了したら一時テーブルを削除することもベストプラクティスと見なされますが、SQL Server にはバージョンに応じていくつかのメカニズムがあり、それらの一部を実行できます。再びスコープスコープスコープ。
お役に立てれば!
マット