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 客户端的事件挂接

 

sp_hook_dbmlsync_schema_upgrade

您可以使用此存储过程运行修订模式的 SQL 脚本。

#hook_dict 表中各行

名称

说明

publication_n (in)

发布

正被同步的发布,其中 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,则 On success 与 always 相同。

注释

此存储过程旨在对部署的远程数据库进行模式更改。使用该挂接进行模式升级可以确保远程数据库上的所有更改在模式升级前得以同步,这确保了数据库可以继续同步。当使用此挂接时,不应将 dbmlsync 扩展选项 LockTables 设置为 off(LockTables 缺省为 on)。

在任何上载已成功应用并已得到 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);

 -- If the schema upgrade is successful, drop this hook:
 UPDATE #hook_dict
  SET value = 'on success'
  WHERE name = 'drop hook';
END;