2

ExportDataというSSISジョブがあり、「ExportType」パラメーターを受け入れます。ExportTypeパラメーターは、「schedule」または「unschedule」にすることができます。

'@ExportType'という変数を作成し、SSIS構成を作成し、構成ファイルで変数を公開して、'ScheduleConfig'という名前を付けました。そのファイルをコピーして、値を「unschedule」に変更し、「UnscheduleConfig」と呼びました。

SQL Server 2008でSSISジョブを作成し、「スケジュール」と「スケジュール解除」の両方に2つの手順を設定しました。ステップごとに正しい設定ファイルを添付しました。ただし、どのステップを実行しても、常に「スケジュール」が実行されます。私は確かに、構成ファイルとステップを再確認しました。

2つの異なる構成ファイルで2つの異なるジョブを実行するにはどうすればよいですか?

SetValuesメソッドを使用して試しましたが、機能しません。

4

3 に答える 3

3

@ExportTypeをSSIS構成に保存しないことをお勧めします。次のようなSETスイッチを追加することにより、DTEXECコマンドラインから値を上書きできます。

/ SET "\ Package.Variables [ExportType] .Properties [Value]"; Schedule

上記と同じPackagePathを使用して、[値の設定]タブのSQL AgentIntegrationServicesジョブステップタイプでこの変数値を上書きできます。

これがお役に立てば幸いです、アンディ

于 2012-04-17T18:45:03.573 に答える
2

あなたはそれをすることはできません。SSISは新しい設定を読み取りません。

パッケージを2回呼び出す必要があります。1回は構成ファイルAで、もう1回は構成ファイルBです。各構成ファイルで、@ExportType変数を「schedule」および「unschedule」に設定します。

パラメータを設定できるのは1回だけです。たとえば、DTEXECを/ Configオプションとともに使用する場合でも、すでに設定されているパラメーターを上書きすることはできません。

于 2012-04-16T16:05:12.943 に答える
2

私があなたの要件を正しく理解していれば。これはで作成されたサンプルパッケージでSSIS 2008 R2あり、あなたが探していることを実行します。このサンプルでは、​​2つの異なるSQLエージェントジョブステップで実行される単一のパッケージを使用し、両方のステップで同じ構成ファイルの異なるコピーを使用します。構成ファイルは、パッケージ内で使用される変数に対して異なる値を保持します。

  • 。という名前のサンプルSSISパッケージを作成しましたSO_10177578ExportTypeパッケージ内に、データ型という名前のパッケージ変数を作成しましたString。また、Execute SQL Taskを[制御フロー]タブに配置します。このタスクは、変数に渡される値を識別するのに役立ちますExportType

新しいパッケージ

  • サンプルデータベースにOLEDB接続を追加し、接続に。という名前を付けましたSQLServer。この接続マネージャーにはSQLServer認証を使用することにしました。

接続マネージャー

  • SQLデータベース内にdbo.ExportData、次の構造で名前が付けられたテーブルを作成しました。IdcolumnはID列です。

テーブル構造

  • テーブルには、そもそもデータが含まれていません。このテーブルには、パッケージの実行時にデータが入力されます。

そもそもデータがない

  • SSISパッケージで、SSISメニュー->選択したPackage Configurationオプションをクリックしました。[パッケージ構成オーガナイザー]ダイアログで、[パッケージ構成を有効にする]チェックボックスを選択し、[追加]ボタンをクリックしました。タイプの新しいパッケージ構成を作成しましたXML Configuration file。ファイルを保存するパスを選択しました。

パッケージ型式

  • 変数のValueプロパティと接続マネージャーExportTypeConnectionStringSQLServerプロパティを構成ファイルに追加しました。

ファイルに追加された値

  • [SQLの実行タスク]で、接続先を選択し、 SQLStatementプロパティを次のようSQLServerに設定します。INSERT INTO dbo.ExportData (PackageName, ExportTypeValue) VALUES (?, ?)

SQLタスク全般を実行する

  • パッケージで使用可能な適切な変数に両方のパラメーターを構成しました。これで、パッケージを展開する準備が整いました。

パラメータマッピング

  • データベースサーバーのSQLエージェントノードで、という名前の新しいSQLジョブを作成しましたTest_ExportDataOwner機密情報を非表示にするために、フィールド情報が削除されます。

SQLジョブ

  • SQLジョブの[ステップ]ページで、Step_01とという名前の2つのステップを作成しましStep_02た。

SQLジョブの手順

  • ステップ1は、パッケージがパスに格納されている状態で次のように構成されますc:\temp\SO_10177578.dtsx

ステップ1パッケージ

  • パッケージを使用して作成されたパッケージ構成ファイルをコピーし、変数の値ExportTypeスケジュールに変更しました。構成ファイルに。という名前を付けましたScheduleConfig.dtsConfig。スクリーンショットは、機密性の高い接続文字列情報を非表示にする構成ファイルの一部のみを示しています。

ScheduleConfig

  • ジョブのステップ1で、パスから新しく作成されたパッケージ構成ファイルを参照しましたc:\temp\Test\ScheduleConfig.dtsConfig.

ステップ1構成

  • c:\temp\SO_10177578.dtsxステップ2は以下のように構成され、ステップ1で使用されたものと同じパスに格納されたパッケージを使用します。

ステップ2パッケージ

  • パッケージを使用して作成されたパッケージ構成ファイルをコピーし、変数の値ExportTypeUnscheduleに変更しました。構成ファイルに。という名前を付けましたUnscheduleConfig.dtsConfig。スクリーンショットは、機密性の高い接続文字列情報を非表示にする構成ファイルの一部のみを示しています。

UnscheduleConfig

  • ジョブのステップ2で、パスから新しく作成されたパッケージ構成ファイルを参照しましたc:\temp\Test\UnscheduleConfig.dtsConfig.

ステップ2構成

  • これで、両方のステップが構成されました。新しいSQLエージェントジョブを実行しました。

実行されたジョブ

  • テーブルを照会しましたExportData。パッケージが2回実行され、SQLエージェントジョブのステップの各実行で、ステップで指定された適切な構成ファイルが使用されていることがわかります。

データが検証されました。

お役に立てば幸いです。

于 2012-04-16T17:45:43.637 に答える