您可以使用此存储过程运行修订模式的 SQL 脚本。
名称 | 值 | 说明 |
---|---|---|
publication_n (in) |
发布 |
不建议使用。改用 subscription_n。正被同步的发布,其中 n 是一个整数。每个正在同步的发布都有一个 publication_n 条目。n 的编号从零开始。 |
MobiLink user (in) |
MobiLink 用户名 |
您正在为其进行同步的 MobiLink 用户。 |
script version (in) |
脚本版本名称 |
用于同步的脚本版本。 |
drop hook (out) |
never | always | on success |
其值可以是: never -(缺省值)不从数据库删除 sp_hook_dbmlsync_schema_upgrade 挂接。 always - 尝试运行此挂接后,从数据库删除 sp_hook_dbmlsync_schema_upgrade 挂接。 on success - 如果此挂接成功运行,则从数据库删除 sp_hook_dbmlsync_schema_upgrade 挂接。如果使用 dbmlsync -eh 选项,或将 dbmlsync 扩展选项 IgnoreHookErrors 设置为 true,或将 IgnoreHookErrors 同步配置文件选项设置为 On,则 On success 与 always 相同。 |
subscription_n (in) | 预订名称 | 正在进行同步的预订的名称,其中 n 是一个整数。每个正在同步的预订都有一个 subscription_n 条目。n 的编号从零开始。 |
提供此挂接主要是为了实现向后兼容。仅当使用 ScriptVersion 扩展选项时,方可通过使用 START SYNCHRONIZATION SCHEMA CHANGE 语句安全地执行模式更改,这时无需使用此挂接。请参见START SYNCHRONIZATION SCHEMA CHANGE 语句 [MobiLink]。
缺省情况下,实现此挂接时,dbmlsync 会将正在同步的表锁定。
此存储过程旨在对部署的远程数据库进行模式更改。使用该挂接进行模式升级可以确保远程数据库上的所有更改在模式升级前得以同步,这确保了数据库可以继续同步。当使用此挂接时,不应将 dbmlsync 扩展选项 LockTables 设置为 off。
在任何上载已成功应用并已得到 MobiLink 确认的同步过程中,此挂接会在 sp_hook_dbmlsync_download_end 挂接之后和 sp_hook_dbmlsync_end 挂接之前被调用。在仅下载同步过程中或在创建或应用基于文件的下载时,不会调用此挂接。
此挂接中执行的操作将在挂接完成后立即提交。在此挂接中执行提交或回退操作是安全的。
以下的示例使用 sp_hook_dbmlsync_schema_upgrade 过程向远程数据库的 Dealer 表中添加一列。如果升级成功,则删除 sp_hook_dbmlsync_schema_upgrade 挂接。
CREATE PROCEDURE sp_hook_dbmlsync_schema_upgrade() BEGIN -- Upgrade the schema of the Dealer table. Add a column: ALTER TABLE Dealer ADD dealer_description VARCHAR(128); -- Change the script version used to synchronize ALTER SYNCHRONIZATION SUBSCRIPTION sub1 SET SCRIPT VERSION='v2'; -- If the schema upgrade is successful, drop this hook: UPDATE #hook_dict SET value = 'on success' WHERE name = 'drop hook'; END; |
![]() |
使用DocCommentXchange 讨论此页。
|
版权 © 2010, iAnywhere Solutions, Inc. - SQL Anywhere 12.0.0 |