【问题标题】:Is SQL Server merge replication transaction-aware?SQL Server 合并复制事务感知吗?
【发布时间】:2011-06-07 11:06:41
【问题描述】:

如果我有两个具有一对多关系的表,它们在同一个发布中使用合并复制进行复制,并且在订阅服务器上,我向每个事务中添加一行,SQL Server 复制确保这些行也/不应用于事务中的服务器?

【问题讨论】:

  • 如果这些表在不同的出版物中。那我肯定说不,不是。如果这些表在同一个出版物中?好问题,我的直觉告诉我不。确定会很好。

标签: sql-server replication


【解决方案1】:

虽然我不能肯定地说,但有令人信服的证据表明答案是

首先,关于using logical records with merge replication的文章状态

默认情况下,合并复制会逐行处理数据更改 基础。在许多情况下,这是合适的,但对于某些情况 应用程序中,必须将相关行作为 单元。合并复制的逻辑记录功能允许您 定义不同表中相关行之间的关系,以便 行作为一个单元处理。

这似乎表明将多个表的更改分组在一起的方法是定义它们之间的(静态)逻辑记录映射。如果事务可以用作对更改进行分组的临时方法,那么这应该是不必要的。此外,行级冲突解决在概念上不适合临时事务性更改分组。

另外,MSmerge_contents table 的定义不包括任何可以存储交易信息的地方。有标识列,订户修改了行,列级更改跟踪和逻辑记录跟踪。还有一个听起来很有前途的generation 专栏,但a generation is all the changes between merges 也是如此。

总之,所有可用的证据都表明在合并时没有在事务中应用的事务中所做的更改。

【讨论】:

    猜你喜欢
    • 2010-10-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-10
    • 1970-01-01
    • 2010-12-30
    • 1970-01-01
    相关资源
    最近更新 更多