スクリプト コンポーネント
スクリプト コンポーネントはスクリプトをホストします。これにより、パッケージにカスタム スクリプト コードを含めて実行できます。 スクリプト コンポーネントは、パッケージ内で次の目的に使用できます。
複数の変換をデータ フロー内で使用する代わりに、複数の変換をデータに適用します。 たとえば、スクリプトによって 2 つの列に値を追加し、その合計の平均を計算できます。
既存の .NET アセンブリのビジネス ルールにアクセスします。 たとえば、スクリプトによって
Income
列で有効な値の範囲を指定するビジネス ルールを適用できます。Integration Services 式の文法で定められた関数や演算子以外のカスタム式とカスタム関数を使用します。 たとえば、LUHN 式を使用して、クレジット カード番号を検証します。
列データを検証し、無効なデータを含むレコードをスキップします。 たとえば、スクリプトを使用すると、郵送料が妥当かどうかを査定して、極端に高い場合や極端に安い場合にレコードをスキップできます。
スクリプト コンポーネントを使用すると、カスタム関数をデータ フローへ簡単、迅速に含めることができます。 ただし、複数のパッケージでスクリプト コードを再利用する場合、スクリプト コンポーネントを使用するのではなく、カスタム コンポーネントをプログラムすることをお勧めします。 詳細については、「 カスタム データ フロー コンポーネントの開発」を参照してください。
注意
スクリプト コンポーネントに値が NULL である列の読み取りを試みるスクリプトが含まれる場合は、パッケージを実行すると、スクリプト コンポーネントが失敗します。 スクリプトでは IsNull メソッドを使用して、列の値の読み取りを試みる前に列が NULL かどうかを判断することをお勧めします。
スクリプト コンポーネントは、変換元、変換、または変換先として使用できます。 このコンポーネントは、1 つの入力と複数の出力をサポートします。 コンポーネントの使用方法に応じて、入力または出力のどちらか、またはその両方がサポートされます。 スクリプトは、入力または出力の列ごとに起動します。
スクリプト コンポーネントを変換元として使用する場合、複数の出力がサポートされます。
スクリプト コンポーネントを変換として使用する場合、1 つの入力と複数の出力がサポートされます。
スクリプト コンポーネントを変換先として使用する場合、1 つの入力がサポートされます。
スクリプト コンポーネントでは、エラー出力はサポートされていません。
スクリプト コンポーネントがパッケージにとって適切な選択である場合、入力と出力を構成し、コンポーネントが使用するスクリプトを開発して、コンポーネント自体を構成する必要があります。
スクリプト コンポーネントのモードについて
SSIS デザイナーでは、スクリプト コンポーネントにメタデータ デザイン モードとコード デザイン モードの 2 つのモードがあります。 メタデータ デザイン モードでは、スクリプト コンポーネントの入力と出力を追加および変更できますが、コードは記述できません。 すべての入力と出力を構成した後に、コード デザイン モードに切り替え、スクリプトを記述します。 スクリプト コンポーネントは、入力と出力のメタデータから、基本コードを自動的に生成します。 スクリプト コンポーネントで基本コードを生成した後にメタデータを変更すると、更新された基本コードと互換性がない可能性があるため、記述したコードをコンパイルできないことがあります。
コンポーネントが使用するスクリプトの記述
スクリプト コンポーネントでは、スクリプトを記述する環境として Microsoft Visual Studio Tools for Applications (VSTA) が使用されます。 スクリプト変換エディターから VSTA にアクセスします。 詳細については、「スクリプト変換エディター ([スクリプト] ページ)」を参照してください。
スクリプト コンポーネントでは、コンポーネントのメタデータを表す、ScriptMain という名前の自動生成クラスが含まれる VSTA プロジェクトが用意されています。 たとえば、スクリプト コンポーネントを 3 つの出力を持つ変換として使用する場合、ScriptMain には各出力のメソッドが含まれます。 ScriptMain は、スクリプトに対するエントリ ポイントです。
VSTA には、色分け表示が可能な Visual Studio エディター、IntelliSense、オブジェクト ブラウザーなど、 Visual Studio 環境での標準機能がすべて含まれています。 スクリプト コンポーネントが使用するスクリプトは、パッケージ定義に格納されます。 パッケージをデザインする際、スクリプト コードは一時的にプロジェクト ファイルに書き込まれます。
VSTA では、 Microsoft Visual C# と Microsoft Visual Basic の両方のプログラミング言語がサポートされます。
スクリプト コンポーネントのプログラミング方法の詳細については、「 スクリプト コンポーネントによるデータ フローの拡張」を参照してください。 スクリプト コンポーネントを変換元、変換、または変換先として構成する方法の詳細については、「 特定の種類のスクリプト コンポーネントの開発」を参照してください。 ODBC 変換先など、スクリプト コンポーネントの使用法を示すその他の例については、「 その他のスクリプト コンポーネントの例」を参照してください。
注意
スクリプトをプリコンパイルするかどうかを指定できた以前のバージョンとは異なり、 SQL Server 2008 Integration Services (SSIS) 以降のバージョンではすべてのスクリプトがプリコンパイルされます。 スクリプトがプリコンパイルされると、実行時に言語エンジンを読み込まないため、パッケージの実行速度が向上します。 ただし、コンパイル済みのバイナリ ファイルは多量のディスク領域を使用します。
スクリプト コンポーネントの構成
スクリプト コンポーネントは、次の方法で構成できます。
参照する入力列を選択します。
注意
SSIS デザイナーを使用する場合、入力は 1 つのみ構成できます。
コンポーネントが実行するスクリプトを指定します。
スクリプト言語を指定します。
読み取り専用変数と読み取り/書き込み変数を、コンマで区切られた一覧にして指定します。
出力を追加し、スクリプトが値を割り当てる出力列を追加します。
プロパティを設定するには SSIS デザイナーから行うか、またはプログラムによって設定します。
デザイナーでのスクリプト コンポーネントの構成
[スクリプト変換エディター] ダイアログ ボックスで設定できるプロパティの詳細については、次のトピックのいずれかを参照してください。
SSIS デザイナーでこれらのプロパティを設定する方法については、次のトピックを参照してください。
プログラムによるスクリプト コンポーネントの構成
[プロパティ] ウィンドウまたはプログラムで設定できるプロパティの詳細については、次のトピックのいずれかを参照してください。
プロパティの設定方法の詳細については、次のトピックのいずれかを参照してください。