OLEDBソースでストアドプロシージャを実行し、出力をファイルに書き込むSSIS pkgがあります。ストアドプロシージャは、特定の曜日であれば何もしないという条件があります。データを生成するときは、いくつかの一時テーブルをステップして最終的なデータを生成します(これは完全に一時テーブルから得られます)。ストアドプロシージャは開始時にSET FMTONLY OFFを有効にしているので、メタデータをSSISに送信できます。 (関連する2つのサーバーは、Windows 2008サーバーボックス上のSQL Server 2008です。)SSISがストアドプロシージャのメタデータを失った
昨夜(日曜日/月曜日はデータが生成されるべきではない日が実行されていた日曜の夜でした。より大きいジョブであるため、親が実行されている間はいつでも実行されます)、pkgはストアドプロシージャのメタデータを見つけることができないと不満を持ち始めました。 SQL Mgmt Studioでサーバー上で直接procを実行すると、行は返されませんが列ヘッダーは返されません。しかし、開発環境のコードとデータはまったく同じではありません。データは返されませんが(正しい)、カラムヘッダーも表示されます(正しい)ので、devのバージョンのpkgはメタデータに不平を言っていません。
私はまた、実行されていないコードの中でprocの先頭に 'dummy'メタデータを追加するトリックを試みました(1 = 0の場合は、select1 cast(nullとしてvarchar(10)しかし、それはdiddlyをしなかった。
メタデータを本番環境にキャッシュしないで、開発を続けるという、生産と開発の設定に違いがなければならないと思っています。誰でもどこから見始めたらいいですか?
あなたは正しい方向に私を指摘しました。保存されたprocは、日曜日と月曜日には続行されないように設定されていたため、日曜日にパッケージから起動されたときには、procでメタデータを生成するのに十分な時間がかかりませんでした。したがって、メタデータは失われてしまいます。私はその日をパッケージ自体にチェックし続け、それを一度実行させて、今度は再びうれしいです。 – Valkyrie