0

我有一个包含 1 个分发者/发布者和许多订阅者的合并复制方案。只有少数文章未经过滤,其他所有文章都由 HOST_NAME() 过滤,从而创建不同的(非重叠)分区。我也尝试通过 SUSER_NAME() 过滤无济于事。

过滤和分发工作完美,但在订阅者上更新失败并显示以下错误消息:

无法更新项目“%s”中的列。文章的 partition_options 属性值为 2 或 3(非重叠分区),并且列涉及行过滤器和/或连接过滤器。在这种情况下,无法在订阅者或重新发布者处更新该列;它必须在顶级 Publisher 更新

它失败的文章的 partition_options-setting 为“Nonoverlapping, single subscription”。我尝试执行的 SQL 是几个 nvarchars 和位的简单参数化 UPDATE。

有人知道我错过了什么吗?不可能很远...

编辑:SQL Server 2008 R2 顺便说一句。

4

1 回答 1

0

我找到了。

问题是我试图做的更新(在这种情况下是实体框架)也包括我在过滤器表达式中使用的列,所以这个更新会改变这个数据集的分区,这显然是不允许的。

于 2011-04-26T08:45:44.607 回答