1

dtsx複数の SSIS パッケージを作成し、シーケンス コンテナーをコピーして 1 つのファイルに貼り付けることで、それらを 1 つのパッケージに統合しました。

その結果、複数の接続マネージャーがすべて同じ 2 つの場所を指すようになりました (各シーケンス コンテナーと共にコピーされ、名前が変更されたため)。

パッケージ全体の変更を反映するために、複製の 1 つだけで接続文字列を変更できるように、それらを統合する方法はありますか?

(すべてのタスクを手動で変更して同じ接続文字列を使用できることはわかっていますが、それは避けたいと思います)

4

3 に答える 3

2

ConnectionString複数の ConnectionManager のプロパティを同じ変数に設定できます。これにより、値を一度変更して、すべての接続に適用することができます。

ただし、すべての ConnectionManagers を調べて、それらのConnectionStringプロパティを手動で変数に設定する必要があります。(もちろん、手動で .dtsx ファイルを編集したり、パッケージをプログラムで更新する .NET アプリケーションを作成したりすることに凝りたい場合を除きます。)余分な ConnectionManager をすべて削除し、タスクとコンポーネントを更新する方が簡単な場合があります。手動で。

于 2013-02-13T15:06:47.723 に答える
1

これらの接続マネージャーのそれぞれは、ID貼り付けたときに新しいプロパティを取得します。Execute SQL Tasks接続マネージャーのフレンドリ名を表示するが、シートの下に表示するなどの用途で使用すると、その GUID が保存されます。これが、接続マネージャー A を接続マネージャー B に、またはその逆に名前を変更でき、タスクが引き続き "正しい" CM を使用する理由です。

既存の接続マネージャーを引き続き使用できるが、構成するものが2つしかないアプローチは、2つの変数を作成し、それらの変数の値をパッケージからの実際の接続文字列に割り当てることですUser::ConnectionManagerAConnectionStringUser::ConnectionManagerBConnectionStringData Source=localhost\DEV2012;Initial Catalog=FOO;Provider=SQLNCLI10.1;Integrated Security=SSPI;

これら 2 つの変数を用意したら、各接続マネージャーでそれらを右クリックし、[プロパティ] ウィンドウで [式] を見つけて省略記号をクリックします。ConnectionStringプロパティを選択し、式で変数を割り当てます。

ここに画像の説明を入力

パッケージを実行すると、すべての接続マネージャーがこれらの式から構成されます。これらの値を変更する必要がある場合は、パッケージを編集するか、dtexec を使用してランタイム構成を適用するか、SSIS の [構成] オプションを使用します。

于 2013-02-13T15:02:55.257 に答える
0

私の知る限り、これは手動で行う必要があります。さらに、すべてが同じ DB に接続するジョブに 5 つの接続マネージャーは必要ありません。

于 2013-02-13T12:03:50.193 に答える