- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ストアドの一時テーブル格納について)
ストアドの一時テーブル格納について
このQ&Aのポイント
- SQLServer2000を使用しています。sp_help_jobの結果セットを一時テーブルにいれたく、以下のようなスクリプトを作成しています。
- スクリプトを実行すると、以下のエラーでInsertに失敗します。メッセージ 8164、レベル 16、状態 1、プロシージャ sp_get_composite_job_info、行 72 INSERT EXEC ステートメントは入れ子にはできません。
- 上記の改善策についてアドバイス頂けないでしょうか。よろしくお願いします。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
sp_help_job内でコールされている「sp_get_composite_job_info」が「INSERT EXEC文」を使用しているため、このエラーが表示されます。 したがって、 ・エラーは出ても、トラップしなければ、結果は受け取れているのではないですか? それならば割り切ってそのまま使うのも手です。 ・お勧めはしませんが、sp_helptextを使えばソースを見られますから、sp_get_composite_job_infoのソースを元にオリジナルのストアドを作成して、その処理の中でワークテーブルにセットしてしまうということもできなくはないです。 (条件指定をしないなら、基本的にはsp_help_jobとsp_get_composite_job_infoの実行結果は同じはずです) もちろん、システムストアドプロシージャはバージョンやサービスパックなどにより、予告なしに変更されることがありますので、そのリスクはとらなくてはなりません。
お礼
お返事遅くなり申し訳ございません。 やはり一筋縄ではいかないようですね。 ご回答ありがとうございました。