Tracking Changes in the Server Database
Many applications require that changes be tracked in the server database so that these changes can be delivered to clients during a subsequent synchronization session. In some cases, a snapshot of data is sufficient, but frequently a client requires only the data that has changed since the previous synchronization session. Synchronization Services does not specifically define how a server database must support change tracking and conflict detection. The only requirement is that SQL queries or stored procedures can be written to identify the rows that should be synchronized or that might be in conflict.
Many of the examples in this documentation track changes by using a set of columns and triggers that are added to base tables, and additional tables to track deletes. The examples use this kind of change tracking so that they are not limited to a specific database. However, be aware that custom change tracking introduces complexity and can affect server database performance. For more information, see How to: Use a Custom Change Tracking System. If you are using SQL Server 2008, we recommend that you use the SQL Server change tracking feature. For more information, see How to: Use SQL Server Change Tracking.