で手動で実行すると毎回正しく実行される SQL Server ストアド プロシージャがありますEXEC
が、SSIS パッケージの一部として実行すると、次のようなエラーで失敗します。
Executing the query "EXECUTE (ProcName) " failed with the following error:
"The OLE DB provider "SQLNCLI10" for linked server "(OtherServer)" reported a
change in schema version between compile time ("177833127975044") and
run time ("177841717910098") for table (Server.Database.Schema.Table)".
この手順はMERGE
、ビューのデータを SP と同じサーバー上の別のデータベースのテーブルにマージするステートメントです。
ビューは、リンク サーバーを参照しますOtherServer
。リンク サーバーで参照されているデータベースは削除され、夜間に再作成されます。
これまでのところ、私はこれらのことを試しました:
1) MERGE を実行する前に、ビューを削除して再作成します。
2) MERGE を含む SP を定義しますWITH RECOMPILE
。
EXEC()
3)事前にコンパイルされないようにMERGE ステートメントをラップします。
4) Bypass Prepare
SSIS の関連するステップで true に設定します。
編集:
ストアド プロシージャを含むサーバーは SQL Server 2008 を実行しています。リンク サーバーは 2008 R2 です。