C# 比较两个表并反映/同步其中一个表中的更改

C# 比较两个表并反映/同步其中一个表中的更改,c#,sql-server,C#,Sql Server,外部客户网络中存在mssql表。目的是在本地服务器中创建并反映相同的表。当然,外部mssql表可以每小时更改一次(数据),我必须检查是否有更改,并在添加/删除或更新新行时在本地表中反映这些更改。有什么有效的方法吗?另外,我知道这个表将有数千条记录。首先,我考虑了一些windows服务应用程序,但不知道该怎么做,我不认为datatable/dataset对于如此多的记录是好的,因为我记得过去的内存异常。有什么想法吗?我将在现有表上创建触发器,在插入、更新和删除时,触发器将插入一个新的同步表(或每个

外部客户网络中存在mssql表。目的是在本地服务器中创建并反映相同的表。当然,外部mssql表可以每小时更改一次(数据),我必须检查是否有更改,并在添加/删除或更新新行时在本地表中反映这些更改。有什么有效的方法吗?另外,我知道这个表将有数千条记录。首先,我考虑了一些windows服务应用程序,但不知道该怎么做,我不认为datatable/dataset对于如此多的记录是好的,因为我记得过去的内存异常。有什么想法吗?

我将在现有表上创建触发器,在插入、更新和删除时,触发器将插入一个新的同步表(或每个现有表的同步表),该表将标记待同步的更改。您的C#代码将按计划从此表中读取,将更改应用于本地数据库,并从“挂起”表中删除行


例如,Azure SQL数据同步就是这样工作的;它为源表中的每个现有表创建一个表,然后检查所有这些表。我认为,根据您拥有的表的数量和结构等,您可以只在一个表中编写类似JSON的内容,而且检查一个表比检查很多表更容易(显然这取决于我们谈论的实际表的数量)。

哪个sql版本?有许多不同的方法,到目前为止,看起来像是一个典型的例子,不确定目前的版本是什么,但假设不少于2016年。您是否尝试过使用链接服务器@卫斯理·南丁格尔,但我不能使用另一台sql server来实现这一点,在本地服务器上没有sql server,也不能,它必须在独立应用程序中完成。顺便问一下,你知道SqlTableDependency是否也可以用于视图吗?还是只有桌子?不知道,抱歉。你觉得我的建议怎么样?