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 系统特权。

上下文和注释

远程数据库中属于不同用户的同名的表在目标数据库中都属于同一个所有者。因此,应该一次只迁移与一个所有者关联的表。

如果不想让目标数据库上的同一个用户拥有所有迁移的表,则必须通过指定 local-table-ownerowner-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 的所有远程表。

 另请参见