SQL Server merge replication: When is data visible to the receiving side?


  • Hi,

    I use merge replication to collect data from a number of agents into a central location (HQ), then process the data in the HQ.
    The data that is being sent in comes from a number (4) different tables.
    I'd like to be sure that processing (in the HQ) starts only when all data has been received.

    Can anyone tell whether data is transferred in a single transaction or not?
    If so, what is the isolation level of that transaction? Is data visible only when the transaction complete?
    In SQL Server 2005 can I configure how a publication behaves?


    Saturday, July 13, 2013 2:27 PM


  • Hello,

    Merge Replication does not guarantee Transactional Consistency.
    According to the book online : Merge replication allows publisher or subscribers to make autonomous data changes after a publication or subscription has been initialized. At the same time,Merge replication tracks and enumerates all changes to the data in published tables by using triggers and system tables.
    When the Merge Agent runs during synchronization, changes are enumerated by the Merge agent and then applied to the Publisher and Subscriber as necessary. Conflicts may occur when updates are merged and merge replication provides a number of ways to handle conflicts.
    Please refer to the articles about more details:

    Fanny Liu

    If you have any feedback on our support, please click  here.

    Fanny Liu
    TechNet Community Support

    Monday, July 15, 2013 6:24 AM