Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SAP Sybase SQL Anywhere 16.0 » SQL Anywhere サーバ SQL の使用法 » データのインポートとエクスポート » SQL Anywhere へのデータベース移行 » sa_migrate システムプロシージャ

 

sa_migrate システムプロシージャを使用したすべてのテーブルの移行

sa_migrate システムプロシージャを使用して、すべてのテーブルを移行できます。

前提条件

次のシステム権限が必要です。

  • CREATE TABLE または CREATE ANY TABLE (ベーステーブルの所有者でない場合)

  • SELECT ANY TABLE (ベーステーブルの所有者でない場合)

  • INSERT ANY TABLE (ベーステーブルの所有者でない場合)

  • ALTER ANY TABLE (ベーステーブルの所有者でない場合)

  • CREATE ANY INDEX (ベーステーブルの所有者でない場合)

  • DROP ANY TABLE (ベーステーブルの所有者でない場合)

ターゲットデータベース内に移行対象のテーブルを所有するユーザが必要です。

外部ログインを作成するには、MANAGE ANY USER システム権限が必要です。

内容と備考

リモートデータベースで、テーブルの所有者が異なっていても名前が同じ場合、それらのテーブルはターゲットデータベースに移行すると 1 人の所有者に属します。したがって、一度に移行するテーブルは、1 人の所有者に関連付けられたテーブルだけにしてください。

ターゲットデータベースに移行後、テーブルをすべて同じユーザによって所有されないようにする場合は、ターゲットデータベース上の所有者ごとに、local_table_owner 引数と owner_name 引数を指定して sa_migrate プロシージャを実行します。

 ♦ タスク
  1. Interactive SQL からターゲットデータベースに接続します。

  2. リモートサーバを作成してリモートデータベースに接続します。

  3. (省略可) リモートデータベースに接続できるように外部ログインを作成します。この手順は、ユーザがターゲットデータベースとリモートデータベースで異なるパスワードを使用している場合、またはターゲットデータベースで使用しているユーザ ID とは異なるユーザ ID でリモートデータベースにログインする場合にのみ必要です。

  4. [SQL 文] ウィンドウ枠で、sa_migrate システムプロシージャを実行します。table_name パラメータと owner_name パラメータの両方に NULL を指定すると、データベース内のシステムテーブルを含む、すべてのテーブルが移行されます。

    例:

    CALL sa_migrate( 'local_user1', 'rmt_server1', NULL, 'remote_user1', NULL, 1, 1, 1 );

結果

このプロシージャは複数のプロシージャを順番に呼び出し、指定された基準を使用してユーザ remote_user1 に属するリモートテーブルをすべて移行します。

 参照