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 客户端 » 发布数据

 

只发布表中的某些行

发布定义中未指定任何 WHERE 子句时,将上载发布中所有更改过的行。可在发布中的项目内添加 WHERE 子句,对要上载的行做以下限制:进行过更改并满足 WHERE 子句中的搜索条件。

WHERE 子句中的搜索条件只能引用项目中包含的列。此外,还不能在 WHERE 子句中使用以下任何一项:

  • 子查询

  • 变量

  • 非确定型函数

这些条件不会强制执行,但违反这些条件可能会导致意外的结果。任何与 WHERE 子句有关的错误都是在对 WHERE 子句引用的表运行 DML 时生成的,定义发布时并不会生成此类错误。

♦  使用 WHERE 子句创建发布(Sybase Central [管理] 模式)
  1. 使用 SQL Anywhere 插件,以具有 DBA 权限的用户身份连接到远程数据库。

  2. 打开 [发布] 文件夹。

  3. 选择 [文件] » [新建] » [发布]。

  4. 在 [您要给新发布指定什么名称] 字段中输入新发布的名称。单击 [下一步]。

  5. 单击 [下一步]。

  6. 在 [可用表] 列表中,选择一个表。单击 [添加]。

  7. 单击 [下一步]。

  8. 单击 [下一步]。

  9. 在 [项目] 列表中选择一个表,并在 [所选项目具有以下 WHERE 子句] 窗格中输入搜索条件。

  10. 单击 [完成]。

♦  使用 WHERE 子句创建发布 (SQL):
  1. 以具有 DBA 权限的用户身份连接到远程数据库。

  2. 执行 CREATE PUBLICATION 语句,其中包括想要包含在发布中的表和一个 WHERE 条件。

    See CREATE PUBLICATION 语句 [MobiLink] [SQL Remote].

示例

以下示例创建一个发布,该发布包括整个雇员表和 SalesOrder 表中未被标记为归档的所有行。

CREATE PUBLICATION main_publication ( 
TABLE Employees, 
TABLE SalesOrders
WHERE archived = 'N' 
);

通过将该表中的归档列从任何其它值更改为 N,在下次同步时会向 MobiLink 服务器发送一个删除操作。相反,如果将归档列从 N 更改为任何其它值,则会发送一个插入操作。对归档列的更新发送到 MobiLink 服务器。