SQL Server オブジェクトの転送タスク
SQL Server オブジェクトの転送タスクは、SQL Server データベース内の 1 つ以上の種類のオブジェクトを SQL Server のインスタンス間で転送します。たとえば、このタスクを使用して、テーブルやストアド プロシージャをコピーできます。転送元として使用される SQL Server のバージョンに応じて、コピーできるオブジェクトの種類が異なります。たとえば、スキーマとユーザー定義集計は SQL Server データベースだけに含まれます。
SQL Server オブジェクトの転送タスクを構成して、すべてのオブジェクト、特定の種類のすべてのオブジェクト、または特定の種類の指定したオブジェクトを転送の対象とすることができます。たとえば、AdventureWorks2008R2 データベース内の選択したテーブルのみをコピーするように指定できます。
SQL Server オブジェクトの転送タスクを使用してテーブルを転送する場合は、テーブルと一緒にコピーする、テーブルに関連するオブジェクトの種類を指定できます。たとえば、テーブルと一緒に主キーをコピーするように指定できます。
転送するオブジェクトの権限に加えて、指定したデータベースのサーバー ロール、ロール、およびユーザーもコピーできます。関連付けられているユーザー、ロール、および権限をオブジェクトと一緒にコピーすることで、転送したオブジェクトを転送先サーバー上ですぐに利用できます。
転送するオブジェクトの機能をさらに強化するため、転送するオブジェクトのスキーマ名、データ、拡張プロパティ、および依存オブジェクトを転送に含めるように SQL Server オブジェクトの転送タスクを構成できます。データをコピーする場合は、既存のデータを置き換えるかまたは追加するかを指定できます。
SQL Server オブジェクトの転送タスクは実行時、2 つの SMO 接続マネージャーを使用して、転送元サーバーおよび転送先サーバーに接続します。SMO 接続マネージャーの構成は SQL Server オブジェクトの転送タスクとは別に行い、SQL Server オブジェクトの転送タスクは SMO 接続マネージャーを参照します。SMO 接続マネージャーは、サーバーと、サーバーに接続する際に使用する認証モードを指定します。詳細については、「SMO 接続マネージャー」を参照してください。
転送するオブジェクト
次の表に、コピーできるオブジェクトを示します。バージョン列は、このオブジェクトの種類を転送に含める際に、転送元としてタスクで使用できる SQL Server のバージョンを示します。
オブジェクト |
バージョン |
---|---|
テーブル |
SQL Server 2000 またはSQL Server |
ビュー |
SQL Server 2000 またはSQL Server |
ストアド プロシージャ |
SQL Server 2000 またはSQL Server |
ユーザー定義関数 |
SQL Server 2000 またはSQL Server |
既定値 |
SQL Server 2000 またはSQL Server |
ユーザー定義データ型 |
SQL Server 2000 またはSQL Server |
パーティション関数 |
SQL Server のみ |
パーティション構成 |
SQL Server のみ |
スキーマ |
SQL Server のみ |
アセンブリ |
SQL Server のみ |
ユーザー定義集計 |
SQL Server のみ |
ユーザー定義型 |
SQL Server のみ |
XML スキーマ コレクション |
SQL Server のみ |
SQL Server 2000 のインスタンスで作成されたユーザー定義データ型は、SQL Server 2000 のシステム データ型に基づきます。SQL Server に転送する場合、これらのユーザー定義データ型は、SQL Server のシステム データ型を使用して作成され、別名を使用したデータ型として保存されます。SQL Server のデータ型の詳細については、「データ型 (データベース エンジン)」を参照してください。
SQL Server のインスタンスで作成されたユーザー定義型 (UDT) には、共通言語ランタイム (CLR) アセンブリに対する依存関係があります。SQL Server オブジェクトの転送タスクを使用して UDT を転送する場合、依存オブジェクトを転送するタスクを構成する必要もあります。依存オブジェクトを転送するには、IncludeDependentObjects プロパティを True に設定します。
テーブル オプション
テーブルをコピーする際には、コピー プロセスに含めるテーブル関連のアイテムの種類を指定できます。次の種類のアイテムは、関連するテーブルと共にコピーできます。
インデックス
トリガー
フルテキスト インデックス
主キー
外部キー
また、タスクで生成するスクリプトを Unicode 形式にするかどうかも指定できます。
転送先に関するオプション
転送するオブジェクトのスキーマ名、データ、拡張プロパティ、および依存オブジェクトを転送に含めるように SQL Server オブジェクトの転送タスクを構成できます。データをコピーする場合は、既存のデータを置き換えるかまたは追加するかを指定できます。
一部のオプションは、SQL Server のみに適用されます。たとえば、スキーマは SQL Server でのみサポートされます。
セキュリティ オプション
SQL Server オブジェクトの転送タスクでは、転送元の SQL Server データベースレベルのユーザーとロール、SQL Server ログイン、および転送するオブジェクトの権限を含めることができます。たとえば、転送するテーブルの権限を転送に含めることができます。
SQL Server のインスタンス間でのオブジェクトの転送
SQL Server オブジェクトの転送タスクでは、転送元および転送先として SQL Server 2000 または SQL Server をサポートします。転送元または転送先として使用するバージョンに関する制限はありません。
イベント
このタスクは、転送されたオブジェクトを報告する情報イベントを生成する以外に、オブジェクトが上書きされたときに警告イベントを生成します。情報イベントは、データベース テーブルの切り捨てなどのアクションに対しても生成されます。
SQL Server オブジェクトの転送タスクでは、オブジェクト転送の進捗状況は報告されません。0% または 100% 完了した場合のみ報告されます。
実行値
このタスクの ExecutionValue プロパティに格納される実行値は、転送されたオブジェクトの数を返します。SQL Server オブジェクトの転送タスクの ExecValueVariable プロパティにユーザー定義変数を割り当てると、オブジェクト転送に関する情報をパッケージの他のオブジェクトで使用できるようになります。詳細については、「Integration Services の変数」および「パッケージでの変数の使用」を参照してください。
ログ エントリ
SQL Server オブジェクトの転送タスクには、次のようなカスタム ログ エントリがあります。
TransferSqlServerObjectsTaskStartTransferringObjects 転送が開始されたことを報告するログ エントリです。ログ エントリには、開始時刻が含まれます。
TransferSqlServerObjectsTaskFinishedTransferringObjects 転送が完了したことを報告このログ エントリです。ログ エントリには、終了時刻が含まれます。
また、OnInformation イベントのログ エントリは、転送対象として選択された種類のオブジェクトの数、転送されたオブジェクトの数、およびテーブルと一緒にデータが転送されたときはテーブルの切り捨てなどのアクションを報告します。OnWarning イベントのログ エントリは転送先でオブジェクトが上書きされると書き込まれます。
セキュリティおよび権限
ユーザーは、転送元サーバー上でオブジェクトを参照する権限、および転送先サーバー上でオブジェクトを削除および作成する権限を持っていることに加えて、指定したデータベースおよびデータベース オブジェクトにアクセスできる必要があります。
SQL Server オブジェクトの転送タスクの構成
プロパティを設定するには、SSIS デザイナーから行うか、またはプログラムによって設定します。
SSIS デザイナーで設定できるプロパティの詳細については、次のトピックのいずれかを参照してください。
SSIS デザイナーでこれらのプロパティを設定する方法については、次のトピックを参照してください。
プログラムによる SQL Server オブジェクトの転送タスクの構成
プログラムによってこれらのプロパティを設定する方法については、次のトピックを参照してください。
|