次の方法で共有


スクリプト タスク

更新 : 2006 年 7 月 17 日

スクリプト タスクでは、組み込みのタスクで利用できない関数を実行するコード、および SQL Server 2005 Integration Services で用意されている変換を実行するコードが用意されています。また、スクリプト タスクを使用すると、複数のタスクおよび変換を使用しなくても、関数を 1 つのスクリプトに結合できます。スクリプト タスクは、データ行ごとに 1 回ではなく、1 つのパッケージ内で 1 回 (または列挙されたオブジェクトごとに 1 回) 行う作業に使用します。スクリプトを使用してセット内のデータ行ごとに同じ作業を行う必要がある場合は、スクリプト タスクではなく、スクリプト コンポーネントを使用します。たとえば、郵送料が妥当かどうかを評価し、極端に高いデータ行や極端に安いデータ行をスキップする場合は、スクリプト コンポーネントを使用します。詳細については、「スクリプト コンポーネント」を参照してください。

スクリプト タスクで作成されるコードは、パッケージの実行時にコンパイルおよび実行される、カスタムの Microsoft Visual Basic .NET コードです。

スクリプト タスクは、次の目的で使用できます。

  • 組み込みの接続の種類ではサポートされていないその他のテクノロジを使用して、データにアクセスします。たとえば、スクリプトは、Active Directory Service Interfaces (ADSI) を使用して Active Directory のユーザー名にアクセスし、ユーザー名を抽出できます。
  • パッケージ固有のパフォーマンス カウンタを作成します。たとえば、スクリプトを使用して、複雑なタスクや時間のかかるタスクの実行中に更新されるパフォーマンス カウンタを作成できます。
  • 指定されたファイルが空かどうか、またはそれらのファイルに含まれている行数を判断し、その情報に基づいて、パッケージ内の制御フローを調整します。たとえば、ファイル内の行数が 0 行の場合は、変数の値が 0 に設定され、値を評価する優先順位制約で、ファイル システム タスクによるファイルのコピーが回避されます。

スクリプト タスクは、次の方法で構成できます。

  • タスクを実行するカスタム スクリプトを指定します。
  • スクリプトのエントリ ポイントとなる関数の名前を指定します。
  • スクリプトを事前コンパイルするかどうかを指定します。
  • 必要に応じて、スクリプトで使用する読み取り専用の変数および読み取り/書き込み変数の一覧を指定します。

スクリプト タスクでは、スクリプトの記述および実行エンジンとして Visual Studio for Applications (VSA) を使用します。スクリプトを実行するには、パッケージを実行するコンピュータに VSA がインストールされている必要があります。

スクリプト タスクでのコードの記述の詳細については、「スクリプト タスクによるパッケージの拡張」を参照してください。

複数のパッケージで 1 つのスクリプトを使用する場合は、スクリプト タスクを使用せず、カスタム タスクを記述することをお勧めします。詳細については、「カスタム タスクの開発」を参照してください。

Visual Studio for Applications 環境

スクリプト タスクでは、VSA 環境へのアクセスが用意されています。色分け表示が可能な Visual Studio エディタ、IntelliSense、オブジェクト エクスプローラなどの Visual Studio .NET 環境での標準機能がすべて利用できます。

パッケージを実行すると、タスクはスクリプト エンジンを読み込み、スクリプトを実行します。プロジェクト内のアセンブリへの参照を追加すると、スクリプトから外部の .NET アセンブリにアクセスできます。

ActiveX スクリプト タスクに比べて、スクリプト タスクには次のいくつかの利点があります。

  • 開発環境を統合できます。VSA では、他の Microsoft 開発ツールで提供される IDE と同じものを使用できます。
  • デバッガを統合できます。VSA でのスクリプトのデバッグには、他の Microsoft 開発ツールで提供されるデバッガと同じものを使用できます。スクリプト内のブレークポイントは、Integration Services のタスクやコンテナのブレークポイントとシームレスに動作します。
  • 共通言語のランタイム言語を使用できます。
  • SSIS デザイナと統合できます。

スクリプト タスクは、ActiveX Script タスクに代わる機能です。ActiveX スクリプト タスクは、下位互換性のために必要な場合のみ使用します。 この機能は、Microsoft SQL Server の次のバージョンで削除されます。新規の開発作業ではこの機能を使用しないようにし、現在この機能を使用しているアプリケーションはできるだけ早く修正してください。

最適化

VSA スクリプトは、パッケージの実行前にコンパイルする必要があります。スクリプト タスクには、パッケージの保存時にスクリプトを事前コンパイルしてバイナリ コードにするオプションが含まれています。スクリプトが事前コンパイルされると、実行時に言語エンジンを読み込まないため、パッケージの実行速度が向上します。ただし、コンパイル済みのバイナリ ファイルは多量のディスク領域を使用します。事前コンパイル オプションを使用しない場合、スクリプトが実行時にコンパイルされるため、パッケージの実行速度は低下しますが、使用するディスク領域は少なくて済みます。サイズの大きなパッケージの保存に支障がない場合は、VSA スクリプトを事前コンパイルしてください。64 ビット環境で実行できるのは、事前コンパイルしたスクリプトのみです。

スクリプトを事前コンパイルするかどうかを選択する際のもう 1 つの注意点は、コンパイルしたスクリプトをデバッグできないということです。既定では、スクリプト タスクがスクリプトを事前コンパイルするように構成され、PreCompile プロパティが True に設定されます。通常、PreCompile プロパティは、パッケージの開発およびデバッグ中は False に設定し、パッケージの配置前に True に再設定します。

スクリプト タスクで使用できるカスタム ログ メッセージ

次の表では、スクリプト タスクのカスタム ログ エントリを説明します。詳細については、「パッケージへのログ機能の実装」および「ログ記録用のカスタム メッセージ」を参照してください。

ログ エントリ 説明

ScriptTaskLogEntry

スクリプト内でのログ記録の実装結果を報告します。ログ エントリは、Dts オブジェクトの Log メソッドを呼び出すたびに書き込まれます。このエントリは、コードの実行時に書き込まれます。詳細については、「スクリプト タスクでのログ記録」を参照してください。

スクリプト タスクの構成

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

SSIS デザイナで設定できるプロパティの詳細については、次のトピックのいずれかを参照してください。

SSIS デザイナでこれらのプロパティを設定する方法については、次のトピックを参照してください。

プログラムによるスクリプト タスクの構成

プログラムによってこれらのプロパティを設定する方法の詳細については、次のトピックを参照してください。

参照

概念

Integration Services タスク
パッケージの制御フローの作成
64 ビット コンピュータ上での Integration Services の使用上の注意

ヘルプおよび情報

SQL Server 2005 の参考資料の入手

変更履歴

リリース 履歴

2006 年 7 月 17 日

変更内容 :
  • カスタム ログ エントリの表を追加しました。

2005 年 12 月 5 日

変更内容 :
  • スクリプト タスクとスクリプト コンポーネントを最大限活用することに関するヒントを追加しました。