• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ストアドの一時テーブル格納について)

ストアドの一時テーブル格納について

このQ&Aのポイント
  • SQLServer2000を使用しています。sp_help_jobの結果セットを一時テーブルにいれたく、以下のようなスクリプトを作成しています。
  • スクリプトを実行すると、以下のエラーでInsertに失敗します。メッセージ 8164、レベル 16、状態 1、プロシージャ sp_get_composite_job_info、行 72 INSERT EXEC ステートメントは入れ子にはできません。
  • 上記の改善策についてアドバイス頂けないでしょうか。よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • jamshid6
  • ベストアンサー率88% (591/669)
回答No.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の実行結果は同じはずです)  もちろん、システムストアドプロシージャはバージョンやサービスパックなどにより、予告なしに変更されることがありますので、そのリスクはとらなくてはなりません。

aimizuch
質問者

お礼

お返事遅くなり申し訳ございません。 やはり一筋縄ではいかないようですね。 ご回答ありがとうございました。