Synchronizing two databases is possible if it is rather complicated. You need some kind of mechanism to find out which records have been changed, and if it is possible to have new changes in both databases, you should also resolve conflicts.
The timer approach is not effective: in most cases, the timer has nothing to do; and after some data change there is some time when the databases are not synchronized.
Can't you just replace SQLite with MS SQL Server? Ie have some configuration options that determine if your program data is in SQLite or on the server?
Assuming that a SQL Server database with the required structure already exists, theoretically this may be required as a modified connection string and provision of some username / password (if the server is not configured to automatically use Windows logins). There should be no big differences in the dialects of SQL used. Of course, you should check all your queries.
source share