通常,远程数据库与统一数据库定义了相同的触发器。
缺省情况下,SQL Remote 不复制由触发器执行的操作。实际上,当在远程数据库上对在统一数据库中触发触发器的操作进行复制时,复制触发器将在远程数据库上自动触发。这将避免权限问题以及每个操作发生两次的可能性。此规则有一些例外情况:
RESOLVE UPDATE 触发器的复制 由冲突解决或 RESOLVE UPDATE 触发器执行的操作将从统一数据库复制 到所有远程数据库,包括发送引起冲突的消息的远程数据库。
BEFORE 触发器的复制 修改要更新的行的 BEFORE 触发器的操作会在执行 UPDATE 语句操作前进行复制。
例如,增加行中计数器列以跟踪行的更新次数的 BEFORE UPDATE 触发器如果被复制,则将进行双倍计数,因为复制 UPDATE 语句时将在远程数据库上触发 BEFORE UPDATE 触发器。
将列设置为上次更新时间的 BEFORE UPDATE 触发器也将获取复制 UPDATE 语句的时间。
若要防止此问题,必须确保预订者数据库中没有 BEFORE UPDATE 触发器,或该触发器不执行被复制的操作。
![]() |
使用DocCommentXchange讨论此页。
|
版权 © 2012, iAnywhere Solutions, Inc. - SQL Anywhere 12.0.1 |