1

システム統合テスト環境、ユーザー受け入れテスト環境、運用環境など、さまざまな環境に対してSSISでさまざまな接続文字列を指定する方法を知っている人はいますか?

複数の接続マネージャーを定義することによって行われますか、それとも複数の構成ファイルを定義して接続文字列を指すことができますか?

4

1 に答える 1

2

同じデータベースに対して複数の接続を持つ必要はありません。

SSIS 2008 では:

式を使用して接続文字列を定義することをお勧めします。これはあなたがそれを行う方法です:

接続マネージャーに新しい OLEDB 接続を追加したとします。ConnectionString プロパティの値をコピーします。IT は次のようになります: データ ソース=(ローカル);初期カタログ=学習;プロバイダー=SQLNCLI10.1;統合セキュリティ=SSPI;アプリケーション名=SSIS-RaggedFile-{03053F2E-8101-4985-9F2B-8C2DDE510065}(ローカル) .Learn;Auto Translate=False;

必須ではないものを削除します: データ ソース=(ローカル);初期カタログ=学習;プロバイダー=SQLNCLI10.1;統合セキュリティ=SSPI;

ここで、コントロール サーフェス レベルで 3 つの新しい変数を作成します: sServer、sDb、sProvider。これら 3 つの変数すべての型は文字列になります。この例を使用すると、それらの値は (local)、Learn、および SQLNCLI10.1 になります。

接続の ConnectionString プロパティに戻ります。その値をに設定します

"Data Source=(local);Initial Catalog=Learn;Provider=SQLNCLI10.1;Integrated Security=SSPI;" 

ここで、server、db、および provider を作成した変数に置き換えて、式を次のようにします。

"Data Source=" + @[User::sServer] + ";Initial Catalog=" + @[User::sDb] + ";Provider=" + @[User::sProvider] + ";Integrated Security=SSPI;"

ある環境から別の環境に移動すると、異なるバージョンのデータベースに遭遇する可能性があります。そのため、プロバイダーにも変数があると便利です。

現在、これらの値は展開時に変更できます。

SSIS 2012 では、この方法は少し変更するだけで引き続き機能します。これら 3 つの変数をパラメーターに変更し、必須にします。そうすれば、展開の展開時に、値を変更する必要があります。これは単なる出発点です。サーバー環境を読んでください。

注: 私は、変数には原子値が必要であると考えています。これにより、入力ミスによるエラーを回避できます。そのため、(たとえば) sCnxn という 1 つの変数を使用するのではなく、3 つの個別の変数を作成し、展開時にその変数の一部を誰かに変更してもらいました。

于 2013-02-25T05:08:55.477 に答える