我有SQL 2008 – > SQL 2000 – > MS Access 2003的合并发布用户拓扑。在SQL 2008级别的一个数据库中,我有一个未经过滤的,由SQL 2000服务器订阅的可更新发布(称为目录)然后重新发布到MS Access客户端。 我可以在MS Access用户进行插入/更新,他们很好地stream向SQL 2008服务器。 在SQL 2008的另一个数据库中,我有几个出版物。 第一个发布有一个基于区域值的静态filter。 另一个出版物是未经过滤的订单和行的出版物。 这两个发布都由SQL 2000计算机订阅到独立于目录发布的数据库。 在SQL 2000级别,我为每个用户创build过滤的发布,从过滤的表中抽取出来,然后连接到订单表。 我可以创buildMSAccess出版物并将其同步。 问题是当我在任何过滤表中进行更改。 我看到更新命中SQL 2000服务器,但它不会stream向SQL 2008服务器。 我尝试了一个虚拟更新,然后更改stream到SQL 2008机器。 任何想法为什么上传到SQL 2000中的过滤表的更改不会传播到SQL 2008计算机?
在MS打开案例后,确定在设置column_tracking = true时发布订阅者/重新发布者拓扑中会出现一个错误。 另外,我在顶层发行商创build了一个静态过滤的出版物,这似乎没有帮助。 问题是,MS Access用户会将更改上传到重新发布,但与art_nick / tablenick为0.该MS代表还表示这发生在SQL CE。 无论如何,重新发布者和发布者之间的代理将忽略msmerge_contents中的logging,因为tablenick没有设置。 为了解决这个问题,我在发布者级别删除了静态过滤的发布,并将所有发布改为使用行级别跟踪。 一旦我这样做,所有来自订阅者的更改都会按照预期传播给发布者。
布赖恩