次の方法で共有


スクリプト コンポーネント

更新 : 2006 年 7 月 17 日

スクリプト コンポーネントはスクリプトをホストします。これにより、パッケージにカスタム スクリプト コードを含めて実行できます。スクリプト コンポーネントは、パッケージ内で次の目的に使用できます。

  • 複数の変換をデータ フロー内で使用する代わりに、複数の変換をデータに適用します。たとえば、スクリプトによって 2 つの列に値を追加し、その合計の平均を計算できます。
  • 既存の .NET アセンブリのビジネス ルールにアクセスします。たとえば、スクリプトによって Income 列で有効な値の範囲を指定するビジネス ルールを適用できます。
  • Integration Services 式の文法で定められた関数や演算子以外のカスタム式とカスタム関数を使用します。たとえば、LUHN 式を使用して、クレジット カード番号を検証します。
  • 列データを検証し、無効なデータを含むレコードをスキップします。たとえば、スクリプトを使用すると、郵送料が妥当かどうかを査定して、極端に高い場合や極端に安い場合にレコードをスキップできます。

スクリプト コンポーネントを使用すると、カスタム関数をデータ フローへ簡単、迅速に含めることができます。ただし、複数のパッケージでスクリプト コードを再利用する場合、スクリプト コンポーネントを使用するのではなく、カスタム コンポーネントをプログラムすることをお勧めします。詳細については、「カスタム データ フロー コンポーネントの開発」を参照してください。

スクリプト コンポーネントは、変換元、変換、または変換先として使用できます。このコンポーネントは、1 つの入力と複数の出力をサポートします。コンポーネントの使用方法に応じて、入力または出力のどちらか、またはその両方がサポートされます。スクリプトは、入力または出力の列ごとに起動します。

  • スクリプト コンポーネントを変換元として使用する場合、複数の出力がサポートされます。
  • スクリプト コンポーネントを変換として使用する場合、1 つの入力と複数の出力がサポートされます。
  • スクリプト コンポーネントを変換先として使用する場合、1 つの入力がサポートされます。

スクリプト コンポーネントでは、エラー出力はサポートされていません。

スクリプト コンポーネントは、次の方法で構成できます。

  • 参照する入力列を選択します。
  • コンポーネントが実行するスクリプトを指定します。
  • スクリプトを事前コンパイルするかどうかを指定します。
  • 読み取り専用変数と読み取り/書き込み変数を、コンマで区切られた一覧にして指定します。
  • 出力を追加し、スクリプトが値を割り当てる出力列を追加します。

SSIS デザイナの [スクリプト変換エディタ] ダイアログ ボックスを使用して構成できる入力は 1 つのみです。

スクリプトを記述するには、[スクリプト変換エディタ] ダイアログ ボックスから Visual Studio for Applications (VSA) 環境にアクセスします。VSA には、色分け表示が可能な Visual Studio エディタ、IntelliSense、オブジェクト ブラウザなど、Visual Studio .NET 環境での標準機能がすべて含まれています。スクリプト コンポーネントが使用するスクリプトは、パッケージ定義に格納されます。単独のスクリプト ファイルはありません。

スクリプト コンポーネントのモード

SSIS デザイナでは、スクリプト コンポーネントにメタデータ デザイン モードとコード デザイン モードの 2 つのモードがあります。メタデータ デザイン モードでは、スクリプト コンポーネントの入力と出力を追加および変更できますが、コードは記述できません。すべての入力と出力を構成した後に、コード デザイン モードに切り替え、スクリプトを記述します。スクリプト コンポーネントは、入力と出力のメタデータから、基本コードを自動的に生成します。スクリプト コンポーネントで基本コードを生成した後にメタデータを変更すると、更新された基本コードと互換性がない可能性があるため、記述したコードをコンパイルできないことがあります。

スクリプト

スクリプト コンポーネントでは、コンポーネントのメタデータを表す、ScriptMain という名前の自動生成クラスが含まれる VSA プロジェクトが用意されています。たとえば、スクリプト コンポーネントを 3 つの出力を持つ変換として使用する場合、ScriptMain には各出力のメソッドが含まれます。ScriptMain は、スクリプトに対するエントリ ポイントです。

スクリプトの Visual Studio for Applications 開発環境では、スクリプト言語として Microsoft Visual Basic .NET だけがサポートされます。

スクリプト コンポーネントのプログラミングの詳細については、「スクリプト コンポーネントによるデータ フローの拡張」を参照してください。スクリプト コンポーネントを変換元、変換、または変換先として構成する方法の詳細については、「特定の種類のスクリプト コンポーネントの開発」を参照してください。ODBC 変換先など、スクリプト コンポーネントの使用法を示すその他の例については、「その他のスクリプト コンポーネントの例」を参照してください。

スクリプトの事前コンパイル

スクリプト コンポーネントは、スクリプトを事前コンパイルするように構成できます。スクリプトを事前コンパイルすると、そのスクリプトはより高速に開始され、64 ビット環境で実行できるようになります。ただし、事前コンパイルされたスクリプトを含めると、パッケージのサイズは増加します。また、コンパイルされたスクリプトはデバッグできません。スクリプトを事前コンパイルするかどうかを決定するときは、これらの要因を考慮する必要があります。

既定では、スクリプト コンポーネントはスクリプトを事前コンパイルするように構成されており、コンポーネントの PreCompile プロパティは True に設定されます。通常、PreCompile プロパティは、パッケージの開発およびデバッグ中は False に設定し、パッケージの配置前に True に再設定します。

スクリプト コンポーネントの構成

プロパティを設定するには、SSIS デザイナから行うか、またはプログラムによって設定します。

[スクリプト変換エディタ] ダイアログ ボックスで設定できるプロパティの詳細については、次のトピックのいずれかを参照してください。

[プロパティ] ウィンドウまたはプログラムで設定できるプロパティの詳細については、次のトピックのいずれかを参照してください。

プロパティの設定方法の詳細については、次のトピックのいずれかを参照してください。

参照

概念

Integration Services の変換
64 ビット コンピュータ上での Integration Services の使用上の注意

その他の技術情報

スクリプト コンポーネントによるデータ フローの拡張

ヘルプおよび情報

SQL Server 2005 の参考資料の入手

変更履歴

リリース 履歴

2006 年 7 月 17 日

変更内容 :
  • スクリプト言語の使用に関する制限事項を追加しました。

2005 年 12 月 5 日

変更内容 :
  • PreCompile プロパティの説明を追加しました。