C# 如何同步存储在不同数据库中的两个表

C# 如何同步存储在不同数据库中的两个表,c#,sql,C#,Sql,我在不同的数据库中有两个表。这些表是完全相同的名称、相同的列等。我的问题是,如何从父表检索新行并存储到子表中?我需要在按钮的单击事件中执行此操作。 提前感谢。有几种技术专门用于此类场景: 支持单向或双向同步 允许您定义数据的映射以及转换,并轻松地将其他代码附加到流程 允许您查询远程服务器上的数据库和表,就像它们是本地数据库的一部分一样。非常容易设置,只需调用exec sp_addlinkedserver,一旦定义,只需使用普通的旧SQL 既然您提到这需要在单击按钮时发生,那么我建议您在存储过程中

我在不同的数据库中有两个表。这些表是完全相同的名称、相同的列等。我的问题是,如何从父表检索新行并存储到子表中?我需要在按钮的单击事件中执行此操作。
提前感谢。

有几种技术专门用于此类场景:

支持单向或双向同步 允许您定义数据的映射以及转换,并轻松地将其他代码附加到流程 允许您查询远程服务器上的数据库和表,就像它们是本地数据库的一部分一样。非常容易设置,只需调用exec sp_addlinkedserver,一旦定义,只需使用普通的旧SQL
既然您提到这需要在单击按钮时发生,那么我建议您在存储过程中使用链接服务器—它们是最简单的选项。SSI也很合适,您需要在单击按钮时执行包。

有几种技术专门用于这种类型的场景:

支持单向或双向同步 允许您定义数据的映射以及转换,并轻松地将其他代码附加到流程 允许您查询远程服务器上的数据库和表,就像它们是本地数据库的一部分一样。非常容易设置,只需调用exec sp_addlinkedserver,一旦定义,只需使用普通的旧SQL
既然您提到这需要在单击按钮时发生,那么我建议您在存储过程中使用链接服务器—它们是最简单的选项。SSI也很合适,您需要在单击按钮时执行包。

长而非最佳的解决方案 从第一个表获取所有id。 从第二个表中获取所有id。
循环遍历第一个数组并删除在第二个数组中找到的所有项。

长且非最佳的解决方案 从第一个表获取所有id。 从第二个表中获取所有id。
循环第一个数组并删除第二个数组中的所有项目。

使用链接服务器自行解决。是一个关于如何创建链接服务器的简单教程。 创建链接服务器后,可以按如下方式查询:

select * from LinkedServerName.DatabaseName.dbo.TableName
工作非常完美!!
接受STW的回答,解释不同的方法。

自己用链接服务器解决了这个问题。是一个关于如何创建链接服务器的简单教程。 创建链接服务器后,可以按如下方式查询:

select * from LinkedServerName.DatabaseName.dbo.TableName
工作非常完美!!
接受STW解释不同方法时的回答。

向我们展示表格结构的样子。您正在使用的RDBMS。单向更新还是双向更新?我需要双向更新。更新应基于id字段。有什么建议吗?您想保持表始终同步,还是在特定时间保持特定行的同步?您考虑过复制吗?我已经提到过,我需要在winForm中的按钮的btnClick事件上执行此操作。谢谢你的关注。让我们看看桌子的结构是什么样的。您正在使用的RDBMS。单向更新还是双向更新?我需要双向更新。更新应基于id字段。有什么建议吗?您想保持表始终同步,还是在特定时间保持特定行的同步?您考虑过复制吗?我已经提到过,我需要在winForm中的按钮的btnClick事件上执行此操作。谢谢您的关注。正如您所说的,这将是一个非最优的解决方案,因为该表包含数以万计的记录。无论如何,谢谢。这种方法会引起头痛,我不推荐。如果每个表中有100个条目,并且用户向每个表中添加了另一个条目,会发生什么情况?然后您必须比较每个记录中的数据以获得差异,但是如果用户更改数据会发生什么。。。我可以继续。正如@STW所说,这个问题有一些解决方案,这将是一个非最优的解决方案,因为该表包含数以万计的记录。无论如何,谢谢。这种方法会引起头痛,我不推荐。如果每个表中有100个条目,并且用户向每个表中添加了另一个条目,会发生什么情况?然后您必须比较每个记录中的数据以获得差异,但是如果用户更改数据会发生什么。。。我可以继续。正如@STW所说,这个问题有几种解决方案