0

すべての異なるオプションを確認した後、私はまだ混乱しています。これがシナリオです。同じサーバー上に複数のデータベースがあり、単一のSSISジョブでファイルからテーブルへの(またはテーブルからの)インポート(またはエクスポート)を処理します。これをvb.netから呼び出しており、ジョブはサーバー上のSSISで実行されています。xp_cmdshellは利用できません。ジョブに固有のジョブ情報(2人が同じデータベースまたは同じサーバー上の別のデータベースで同じジョブを実行している可能性があります)、データベース接続情報(これを保存して選択することはできません)に渡す必要がありますdbは必要に応じて追加/削除される可能性があり、ジョブを再構成したくないため)およびファイル名/パス(サーバー上またはSSISで使用可能な許可されたUNCパス)。
ジョブ/ジョブステップを宣言してから、ジョブを直接実行するオプションについて見てきました。このアイデアは、ジョブが一意であり、ジョブ呼び出しが問題をジョブIDによって共通のログテーブルに報告するSQLプロシージャを使用できるという点で気に入っています。このログは、レビューに利用できます。
私が実際にフォローしていないのは、この仕事に必要な情報を渡す方法です。http://code.msdn.microsoft.com/Calling-a-SSIS-Package-a35afefb
_setコマンドを使用してパラメーターを渡すのがわかりますが、2回処理されるという呼び出しの説明に混乱します。また、その例では、ジョブの追加ステップでマスターDB参照を自分のDBに変更しますか?私の問題は、パラメータの受け渡しとDBの変更が本当にクリーンで単純な例はなく、データソースから処理するDBのリストなどのさまざまなオプションを多く使用し、渡される変数をどう処理するかを本当にきれいに示していないことです。呼び出されたストアドプロシージャに至るまで。
深く掘り下げて実験する時間がありません。レベルを下げて理解しようとしているので、それがどのように行われるかを確認する必要があります。これにより、どのようにそれを利用し、使用する必要のある情報(つまり、動的に割り当てるために接続情報が必要ですか)グランドスキームのどこでその情報を取得しているかを理解するために接続情報を知る必要があるためです。(それを実際のDBに保存するのではなく、そのための中央DBにリポジトリがありますが、何を保存する必要があるのか​​正確にはわかりません!)ブライアン

4

2 に答える 2

0

ジョブの 1 回の実行に対して動的なパラメーターは、構成テーブルを介して SSIS パッケージに渡すことができます。ジョブを開始するプロセスは、ジョブを開始する前に構成テーブルに必要なパラメーターを設定します。ジョブは SSIS パッケージを開始します。このパッケージには、構成テーブルから値を読み取り、SSIS パッケージ内のパラメーター値に読み込むための接続マネージャーがあります。

データベース接続情報があるとおっしゃいましたが、テーブルを介してパラメーターを渡すことを選択した場合は、SQL ログイン情報をデータベースに保存することはお勧めできません。SSIS パッケージの接続マネージャーは Windows 認証を使用する必要があり、SSIS パッケージで必要なアクセス許可を SQLAgent サービス アカウントに付与できます。

于 2013-02-26T23:29:03.320 に答える