可以在远程 SQL Anywhere 数据库部署后更改其模式。
如果可以确保没有其它连接连接到远程数据库,则可以使用 ALTER PUBLICATION 语句手工添加新表或更改表到发布中。否则,必须使用 sp_hook_dbmlsync_schema_upgrade 挂接来升级模式。
在统一数据库中添加关联的表脚本。
同一脚本版本既可用于不带新表的远程数据库,又可用于带有新表的远程数据库。不过,如果新表的存在会更改现有表的同步方式,则必须创建一个新的脚本版本,同时还必须为使用该新脚本版本同步的所有表创建新脚本。
执行常规同步。继续操作前应确保同步成功完成。
使用 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]。
执行同步。如果需要,请使用新的脚本版本。
在现有的表中更改列的数目或类型时应谨慎。当 MobiLink 客户端使用新模式进行同步时,它需要的脚本(例如 upload_update 或 download_cursor 这样的脚本)中应该包含与远程表中的所有列相对应的参数。而旧的远程数据库则需要使用只包含原始列作为参数的脚本。
在统一数据库中,创建一个新的脚本版本。
有关详细信息,请参见脚本版本。
使用新的脚本版本,为发布中所有的表创建脚本,这些发布包含要更改的表且已使用旧脚本版本进行同步。
在远程数据库中,使用旧脚本版本执行常规同步。继续操作前应确保同步成功完成。
在远程数据库中,使用 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。
在远程数据库中,使用 ALTER TABLE 语句更改表。
有关详细信息,请参见ALTER TABLE 语句。
在远程数据库中,使用 ALTER PUBLICATION 语句将表添加回发布中。
有关详细信息,请参见ALTER PUBLICATION 语句 [MobiLink] [SQL Remote]。
您可以在 sp_hook_dbmlsync_schema_upgrade 挂接中使用此语句。请参见sp_hook_dbmlsync_schema_upgrade。
使用新脚本版本进行同步。
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |