If your database design cannot be altered much, and if all of your remote sites simply get an entire new copy of the central database daily, then I can see why you are asking for advice as that is a curly one.

If you can alter the DB design a little (ahem , ok you caught me - alot), then you should implement a transaction table.

A transaction table will record for you the changes to data that the users asked for. It's not as bad as it sounds once you get into it - especially if make it generic.

This way, CRUD transactions are handled locally on the site (which updates their database) and then the exact same transaction can be executed on the central database as well.

If the transaction said to delete a record, then it is processed at central just as it was at the site, and hopefully, with the same effect!

This won't be very easy if you have legacy systems accessing the database which you cannot change.

I have no idea if it helps you but there you go

Regards
Paul Lewis