次の方法で共有


システム変数

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 は正しく変換されません。

この規則は、ユーザー定義変数にも当てはまります。 ただし、システム変数のデータ型は変更できないため、システム変数を使用する場合はそのデータ型に合わせた調整が必要ですが、ユーザー定義変数にはそれに比べると高い柔軟性があります。 パラメーター バインドで使用するユーザー定義変数は、通常、マップ先パラメーターのデータ型と互換性のあるデータ型で定義します。

クエリ パラメーターを SQL 実行タスクの変数にマップする方法