SQL Server Integration Services では、実行中のパッケージとそのオブジェクトに関する情報を格納する、システム変数のセットが用意されています。 これらの変数は、式およびプロパティ式の内部で使用でき、パッケージ、コンテナー、タスク、およびイベント ハンドラーをカスタマイズできます。
すべての変数 (システム変数とユーザー定義変数) を SQL 実行タスクが使用するパラメーター バインドで使用して、パラメーターに変数をマップできます。
パッケージ用システム変数
次の表では、 Integration Services がパッケージ用に提供するシステム変数について説明します。
システム変数 | データの種類 | 説明 |
---|---|---|
CancelEvent | Int32 | タスクがシグナルを送信して実行を停止する必要があることを示す、Windows イベント オブジェクトへのハンドルです。 |
ContainerStartTime |
日付と時間 | コンテナーの開始時刻です。 |
CreationDate | 日付と時間 | パッケージが作成された日付です。 |
CreatorComputerName |
糸 | パッケージが作成されたコンピューターです。 |
CreatorName | 糸 | パッケージの構築者の名前です。 |
ExecutionInstanceGUID |
糸 | 実行中のパッケージのインスタンスの一意識別子です。 |
FailedConfigurations |
糸 | 失敗したパッケージ構成の名前。 |
IgnoreConfigurationsOnLoad |
ボーリアン | パッケージを読み込むときにパッケージ構成を無視するかどうかを示します。 |
InteractiveMode | ボーリアン | パッケージが対話モードで実行されているかどうかを示します。 パッケージが SSIS デザイナーで実行されている場合、このプロパティは True に設定されます。
DTExec コマンド プロンプト ユーティリティを使用してパッケージが実行されている場合、プロパティは False に設定されます。 |
LocaleId |
Int32 | パッケージで使用するロケールです。 |
MachineName | 糸 | パッケージが実行されているコンピューターの名前です。 |
OfflineMode | ボーリアン | パッケージがオフライン モードかどうかを示します。 オフライン モードでは、データ ソースへの接続は取得されません。 |
PackageID | 糸 | パッケージの一意識別子です。 |
PackageName | 糸 | パッケージの名前。 |
StartTime | 日付と時間 | パッケージの実行を開始した時刻です。 |
ServerExecutionID |
Int64 | Integration Services サーバーで実行されるパッケージの実行 ID です。 既定値は 0 です。 この値が変更されるのは、 Integration Services サーバーで ISServerExec によってパッケージが実行される場合のみです。 子パッケージがある場合は、この値が親パッケージから子パッケージに渡されます。 |
UserName | 糸 | パッケージを開始したユーザーのアカウントです。 ユーザー名は、ドメイン名によって修飾されます。 |
バージョンビルド | Int32 | パッケージのバージョン。 |
バージョンコメント | 糸 | パッケージ バージョンについてのコメント。 |
VersionGUID | 糸 | バージョンの一意識別子です。 |
VersionMajor | Int32 | パッケージのメジャー バージョン。 |
VersionMinor | Int32 | パッケージのマイナー バージョン。 |
コンテナー用システム変数
次の表では、 Integration Services が、For ループ コンテナー、Foreach ループ コンテナー、およびシーケンス コンテナー用に提供するシステム変数について説明します。
システム変数 | データの種類 | 説明 | コンテナ |
---|---|---|---|
LocaleId |
Int32 | コンテナーが使用するロケールです。 | For ループ コンテナー Foreach ループ コンテナー シーケンス コンテナー |
タスク用システム変数
次の表では、 Integration Services がタスク用に提供するシステム変数について説明します。
システム変数 | データの種類 | 説明 |
---|---|---|
CreationName | 糸 | タスクの名前。 |
LocaleId |
Int32 | タスクが使用するロケールです。 |
TaskID | 糸 | タスク インスタンスの一意識別子です。 |
TaskName | 糸 | タスク インスタンスの名前です。 |
TaskTransactionOption |
Int32 | タスクが使用するトランザクションのオプションです。 |
イベント ハンドラー用システム変数
次の表では、 Integration Services がイベント ハンドラー用に提供するシステム変数について説明します。 すべての変数がすべてのイベント ハンドラーで使用できるわけではありません。
システム変数 | データの種類 | 説明 | イベント ハンドラー |
---|---|---|---|
キャンセル | ボーリアン | エラー、警告、またはクエリのキャンセルが発生したときに、イベント ハンドラーが実行を停止するかどうかを示します。 | OnError イベント ハンドラー OnWarning イベント ハンドラー OnQueryCancel イベント ハンドラー |
ErrorCode | Int32 | エラー識別子です。 | OnError イベント ハンドラー OnInformation イベント ハンドラー OnWarning イベント ハンドラー |
ErrorDescription | 糸 | エラーの説明。 | OnError イベント ハンドラー OnInformation イベント ハンドラー OnWarning イベント ハンドラー |
ExecutionStatus | ボーリアン | 現在の実行ステータスです。 | OnExecStatusChanged イベント ハンドラー |
ExecutionValue |
DBNull | 実行値です。 | OnTaskFailed イベント ハンドラー |
LocaleId |
Int32 | イベント ハンドラーが使用するロケールです。 | すべてのイベント ハンドラー |
完了の割合 | Int32 | 完了済みの作業の割合です。 | OnProgress イベント ハンドラー |
ProgressCountHigh | Int32 | OnProgress イベントによって処理される操作の総数を示す、64 ビット値の上位部分です。 | OnProgress イベント ハンドラー |
ProgressCountLow |
Int32 | OnProgress イベントによって処理される操作の総数を示す、64 ビット値の下位部分です。 | OnProgress イベント ハンドラー |
ProgressDescription | 糸 | 進行状況の説明です。 | OnProgress イベント ハンドラー |
Propagate |
ボーリアン | イベントが、上位レベルのイベント ハンドラーに反映されるかどうかを示します。 注: Propagate 変数の値は、パッケージの検証中は無視されます。Propagate を子パッケージにFalse に設定しても、イベントが親パッケージに反映されなくなります。 |
すべてのイベント ハンドラー |
SourceDescription |
糸 | イベントを発生させたイベント ハンドラー内の実行可能ファイルの説明です。 | すべてのイベント ハンドラー |
SourceID |
糸 | イベントを発生させたイベント ハンドラー内の実行可能ファイルの一意識別子です。 | すべてのイベント ハンドラー |
SourceName | 糸 | イベントを発生させたイベント ハンドラー内の実行可能ファイルの名前です。 | すべてのイベント ハンドラー |
VariableDescription |
糸 | 変数の説明です。 | OnVariableValueChanged イベント ハンドラー |
VariableID |
糸 | 変数の一意識別子です。 | OnVariableValueChanged イベント ハンドラー |
パラメーター バインドにおけるシステム変数
パッケージの実行時に、システム変数の値をテーブルに保存すると役立つことがよくあります。 たとえば、テーブルを動的に作成し、このテーブルを作成したパッケージ実行インスタンスの GUID をテーブル列に書き込むパッケージなどです。
システム変数を使用して、SQL 実行タスクが使用する SQL ステートメントのパラメーターにマップする場合、各パラメーター バインドのデータ型を、システム変数のデータ型に設定することが重要です。 このように設定しないと、システム変数の値が誤って解釈されることがあります。 たとえば、文字列データ型を持ち、パッケージの実行中のインスタンスの GUID を表す文字列を含む ExecutionInstanceGUID
システム変数が、GUID データ型を使用したパラメーター バインドで使用されている場合、パッケージ インスタンスの GUID は正しく変換されません。
この規則は、ユーザー定義変数にも当てはまります。 ただし、システム変数のデータ型は変更できないため、システム変数を使用する場合はそのデータ型に合わせた調整が必要ですが、ユーザー定義変数にはそれに比べると高い柔軟性があります。 パラメーター バインドで使用するユーザー定義変数は、通常、マップ先パラメーターのデータ型と互換性のあるデータ型で定義します。