可以使用 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-owner 和 owner-name 参数为目标数据库上的每位所有者运行一次 sa_migrate 过程。
在 Interactive SQL 中,连接到目标数据库。
创建一个远程服务器以连接到远程数据库。
(可选)创建用于连接远程数据库的外部登录。只有当用户在目标数据库和远程数据库上具有不同的口令,或者当您在远程数据库上登录时使用的用户 ID 与在目标数据库上登录时使用的用户 ID 不同时,才需要创建外部登录。
在 [SQL 语句] 窗格中,运行 sa_migrate 系统过程。如果同时为 table-name 和 owner-name 参数提供 NULL 值,则会迁移数据库中的所有表,包括系统表。
例如:
CALL sa_migrate( 'local_user1', 'rmt_server1', NULL, 'remote_user1', NULL, 1, 1, 1 ); |
![]() |
使用DocCommentXchange讨论此页。
|
版权 © 2013, SAP 股份公司或其关联公司. - SAP Sybase SQL Anywhere 16.0 |