Merge Replication
Merge replication, like transactional replication, typically starts with a report snapshot of the publication database objects and data. Subsequent data changes and schema modifications made at the Publisher and Subscriber are tracked with triggers. The Subscriber synchronizes with the Publisher when connected to the network and exchanges all rows that have changed between the Publisher and Subscriber since the last time synchronization occurred.
Merge replication is typically used in server-to-client environments. Merge replication is appropriate in any of the following situations:
- Multiple Subscribers might update the same data at various times and propagate those changes to the Publisher and to other Subscribers.
- Subscribers need to receive data, make changes offline, and later synchronize changes with the Publisher and other Subscribers.
- Each Subscriber requires a different partition of data.
- Conflicts might occur. When they do, you need the ability to detect and resolve them.
- The application requires net data change instead of access to intermediate data states. For example, if a row changes five times at a Subscriber before it synchronizes with a Publisher, the row will change only once at the Publisher, to the fifth value, to reflect the net data change.
Merge replication enables various sites to work autonomously and later merge updates into a single, uniform result. Because updates are made at more than one server, the same data might have been updated by the Publisher and by more than one Subscriber. Therefore, conflicts can occur when updates are merged. Merge replication provides several ways to handle conflicts.
For information about implementing merge replication, see Implementing Replication in SQL Server 2005 Books Online.
For information about common scenarios that involve merge replication, see Replicating Data Between a Server and Clients in SQL Server 2005 Books Online.
See Also
Concepts
Snapshot Replication
Transactional Replication
Replication Components
Replication Considerations (SQL Server Express)