プログラムで接続文字列を設定する際に問題が発生しています。
これが私のプロジェクトの概要です。私は 2012 SSIS を使用しており、接続マネージャーに 2 つの接続があります (ソースと宛先で、どちらも OLE DB 接続です)。実行したいパッケージが複数あります。これらの各パッケージには、SQL 実行タスクのみが含まれています。各タスクでは、SQL ステートメントの接続タイプを OLE DB に設定し、接続は宛先、SQL ソース タイプはファイル接続、ファイル接続は C ドライブにあるファイルであり、C ドライブで生成したスクリプト ファイルです。プログラム。
これらのパッケージを 2012 インスタンスであるサーバーにデプロイしました。ソース接続と宛先接続も私のサーバーにありますが、2008 R2 インスタンスにあります。
N 個のデータベースをループします。各ループで、次の SQL ステートメントを実行して、接続文字列と IntialCatalog プロパティを設定できます。
DECLARE @var sql_variant = N'Data Source=MyServerName\SQL2008R2;Initial Catalog=DatabaseName1;Provider=SQLNCLI11.1;Integrated Security=SSPI;Auto Translate=False;'
EXEC [SSISDB].[catalog].[set_object_parameter_value] @object_type=20、@parameter_name=N'CM.Destination.ConnectionString'、@object_name=N'MAC'、@folder_name=N'MAC'、@project_name=N' MAC'、@value_type=V、@parameter_value=@var
プロジェクトの設定オプションを開いて、プログラムのステップ実行中に接続文字列と初期カタログ値が変化することを確認できるため、これは機能します。(最初のカタログの SQL は含めませんでしたが、接続文字列に似ています)
プログラムでこれを実行すると、次のエラーが発生します。
接続「{9C2C8088-CE67-4D93-81B8-EC364D6E78D1}」が見つかりません。このエラーは、指定された接続要素が見つからない場合に Connections コレクションによってスローされます。
SQL 実行タスクの接続が更新されるようにパッケージを更新する方法はありますか?
ちなみに、Visual Studio でパッケージを開いて接続を変更すると、パッケージが実行されます。プログラムで接続を変更して実行しようとしたとき、またはエラーが発生したときにサーバーにデプロイされたパッケージを実行しようとしたときです。
私はこの質問を見ました。似ていますが、別の質問をするのに十分なほど異なると思います。 パッケージ に SSIS 接続が見つかりません。ここで多くの素晴らしい情報を見つけましたが、まだ探しているものではありません.
どんな助け/アドバイスも大歓迎です!
ありがとう
マーク