No quello che pensavo era un po diverso, anche perche la osa dell'id maggiore dell'ultimo importato non ti permetterebbe di importare record vecchi modificati.
In tutte le tabelle che possono essere scaricate e modificate aggiungi un campo [DataModifica], che indica la data in cui è stato effettuato l'ultimo aggiornamento, e un campo [Deleted] che indica che il campo è stato eliminato

Aggiungi una tabella [Aggiornamenti] dove tenere traccia degli aggiornamenti fatti dagli utenti:
idUtente intero
DataUltimoAggiornamento Date
- Quando un'utente cerca gli ultimi aggiornamenti gli passi tutti i record con [Tabella].[DataModifica]>[Aggiornamenti].[DataUltimoAggiornamento] e in un secondo momento gli puoi passare, con lo stesso filtro i record da eliminare (quindi con il campo [Deleted] checcato. Una volta terminata l'operazione aggiorni il campo [DataUltimoAggiornamento] con la data corrente
- Quando un'utente scarica i dati li aggiorni o li aggiungi sempre utilizzando l'id univoco, valorizzando [DataModifica] sempre con la data odierna

Nota che tutte le query saranno eseguite sul server, non avendo qundi nessun problema di sincronizzare le date, che pio anche evitare di passare nelle tabelle salvate in locale dai singoli utenti.

Quello che mancherebbe è un controllo per evitare che due utenti modifichino lo stesso record, ma li forse diventerebbe un po più complicato (un utente dovrebbe bloccare un record, metti con un campo booleano sulla tabella, prima di modificarlo, e poi sbloccarlo quando viene ripassato al server)

Spero di essermi capito :bubu: