• hi Grasshopper,

    there is no standard script for such cases. Yes, actually I compared any single table on each subscriber (thank goodness there are only 2).

    In sys.objects I can see when the table was created and modified. The modify date seemed to be the date when the subscriptions where refreshed.

    As we have an InsertDate in nearly all our tables I queried any replicated table on the publisher like the following:

    select *

    into dbo.ReplDiff_TableXY

    from dbo.TableXY

    where InsertDate between ... and ...

    I chose a time frame of 2 minutes.

    As usually there is no index on the InsertDate it is essential to use READ UNCOMMITTED and of course the queries used some time to execute.

    Then, on the subscriber, I queried like this:

    insert into dbo.TableXY

    where SomePKColumn not in ( select SomePKColumn from [LinkedServerToPublisher].myDB.dbo.ReplDiff_TableXY )

    As the ReplDiff-Tables on the publisher did not contain many data the use of the linked server was no problem, otherwise I would have copied these ReplDiff-tables in a separate step to the subscribers.

    But, as mentioned, you get the Inserts that way, but not the updates.

    For generating the queries I used the system tables to get the table and primary key column names, like this:

    select 'insert into ' + schema_name(schema_id) + '.' + object_name(object_id)

    from sys.tables.....

    I wonder I still did not find anything detailled about this problem. But I've never added a table during production time in such a huge system which gets several transactions per second....