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

SQL Anywhere 11.0.1 (中文) » MobiLink - 客户端管理 » MobiLink 客户端简介 » 远程客户端中的模式更改

 

SQL Anywhere 远程数据库的模式升级

可以在远程 SQL Anywhere 数据库部署后更改其模式。

注意

如果可以确保没有其它连接连接到远程数据库,则可以使用 ALTER PUBLICATION 语句手工添加新表或更改表到发布中。否则,必须使用 sp_hook_dbmlsync_schema_upgrade 挂接来升级模式。

请参见sp_hook_dbmlsync_schema_upgrade

♦  将表添加到 SQL Anywhere 远程数据库中
  1. 在统一数据库中添加关联的表脚本。

    同一脚本版本既可用于不带新表的远程数据库,又可用于带有新表的远程数据库。不过,如果新表的存在会更改现有表的同步方式,则必须创建一个新的脚本版本,同时还必须为使用该新脚本版本同步的所有表创建新脚本。

  2. 执行常规同步。继续操作前应确保同步成功完成。

  3. 使用 ALTER PUBLICATION 语句添加表。例如,

    ALTER PUBLICATION your_pub
       ADD TABLE table_name;

    您可以在 sp_hook_dbmlsync_schema_upgrade 挂接中使用此语句。请参见sp_hook_dbmlsync_schema_upgrade

    有关详细信息,请参见ALTER PUBLICATION 语句 [MobiLink] [SQL Remote]

  4. 执行同步。如果需要,请使用新的脚本版本。

在远程数据库中更改表定义

在现有的表中更改列的数目或类型时应谨慎。当 MobiLink 客户端使用新模式进行同步时,它需要的脚本(例如 upload_update 或 download_cursor 这样的脚本)中应该包含与远程表中的所有列相对应的参数。而旧的远程数据库则需要使用只包含原始列作为参数的脚本。

♦  更改已部署的 SQL Anywhere 远程数据库中发布的表
  1. 在统一数据库中,创建一个新的脚本版本。

    有关详细信息,请参见脚本版本

  2. 使用新的脚本版本,为发布中所有的表创建脚本,这些发布包含要更改的表且已使用旧脚本版本进行同步。

  3. 在远程数据库中,使用旧脚本版本执行常规同步。继续操作前应确保同步成功完成。

  4. 在远程数据库中,使用 ALTER PUBLICATION 语句临时从发布中删除该表。例如,

    ALTER PUBLICATION your_pub
      DROP TABLE table_name; 

    有关详细信息,请参见ALTER PUBLICATION 语句 [MobiLink] [SQL Remote]

    您可以在 sp_hook_dbmlsync_schema_upgrade 挂接中使用此语句。请参见sp_hook_dbmlsync_schema_upgrade

  5. 在远程数据库中,使用 ALTER TABLE 语句更改表。

    有关详细信息,请参见ALTER TABLE 语句

  6. 在远程数据库中,使用 ALTER PUBLICATION 语句将表添加回发布中。

    有关详细信息,请参见ALTER PUBLICATION 语句 [MobiLink] [SQL Remote]

    您可以在 sp_hook_dbmlsync_schema_upgrade 挂接中使用此语句。请参见sp_hook_dbmlsync_schema_upgrade

  7. 使用新脚本版本进行同步。