2016-08-10 23 views
0

ユーザー定義変数を使用してSSIS OLE DB接続の接続文字列を定義する方法はありますか?SSISでOLE DB接続に変数を使用する方法

1)私はもともとパッケージパラメータを使用するように設定していました。

2)SQLストアドプロシージャのxp_cmdshellを使用してファイルからSSISパッケージを実行しますが、そのパッケージが判明しました。パラメータは読み取り専用です。

  • 私はこのエラーを得た...「変数の値を変更することは、パラメータ変数であるために失敗した。パラメータ変数は読み取り専用されている」

3)だから私がする必要があるように見えます変数を使用する...しかし、私は接続文字列の変数を使用する方法が表示されません。接続に 'Parameterize'オプションを使用すると、変数ではなくパラメータを選択するオプションしか表示されません。

どのような考えですか?ありがとう!

+0

基本的に[this](http://www.sqlchick.com/entries/2015/1/4/parameterizing-connections-and-values-at-runtime-using-ssis-environment-variables)を実行したいとします。 )? – MikeTheLiar

+0

私は私のローカル環境でその正確な設定をしています。しかし、Dev、Qa、Prodなどでは、SQL ServerでIntegration Serviceの設定を取得するために、たくさんのフープを実行する必要があります。現在、私の会社のSSIS pkgはすべてディレクトリにコピーされ、xp_cmdshellを使用して実行されます。問題は現在のもののどれも動的接続文字列を必要としないので、これは今まで問題ではなかったということです。だから、私は現在のセットアップで動作させる方法を見つけ出す必要があります。これは厳しい時期であり、SQLサーバーに変更を加えるための承認プロセスは時間がかかりすぎます...意味がありますか? – Zach

+0

環境ごとに接続文字列を指定するだけであれば、パッケージを展開した後でSQL Serverを使用して接続文字列を指定できます。 (つまり、コードに設定されていない構成設定です) – MikeTheLiar

答えて

1

私はあなたが多くのアドバイスを得るつもりであると確信していますが、その部分に答えるために変数を接続文字列として使用する方法を尋ねました。それは

  • は、(Iパッケージ変数を追加します(右側の空きスペース上の制御フローでクリックし、1を追加することができますどこの変数があなたをもたらす選択)
  • が接続マネージャを選択し、プロパティに移動し、非常に簡単です
  • ...をクリックして[...]ボタンをクリックします。
  • プロパティで「ConnectionString」を選択し、変数を任意の値に設定します。

enter image description here

+0

私はこのルートに行くとき、私は接続マネージャで "Parameterize"オプションを使用していました。変数を使用するオプションはなく、パッケージパラメータのみを使用しました。それをあなたのやり方でやって、私が何をする必要があるか正確にやり遂げることができました。ありがとう! – Zach

0

はい、マットの答えは正しいです。接続マネージャーの式でユーザー定義変数を使用することができます。

これには制限があります。この変数はこのパッケージでのみ動作します。

ユーザー定義変数の代わりにプロジェクトパラメータを作成して、今後そのプロジェクトのパッケージを構成することもできます。

複数のパッケージで同じ接続が使用されている場合は、プロジェクトマネージャで接続マネージャを移動できます。

関連する問題