将SQL数据库中的logging与Excel进行比较,并相应地更新数据库

我有一个约100列,约10000行的表。 我将定期收到一个具有类似数据的Excel,现在我需要更新表格。 如果Excel中存在新行,我必须将它们添加到数据库。 如果旧行已经更新,我需要更新数据库中的行。 如果某些行已被删除,我需要从主表中删除该行并添加到另一个表中。

我曾想过如下进行:

从数据库中获取所有行到DataSet中。 将Excel中的所有行导入到DataSet中。 现在使用连接比较这两个数据集并执行所需的操作。

我从来没有这样的数据工作,并担心performance。 让我知道实现这一要求的理想方法。

提前致谢。 🙂

正如我的经验所说,如果您select在t-sql中执行如下操作,那么这么简单:

  1. 您可以在SQL Server中使用"OPENROWSET""OPENQUERY" ,链接的服务器,DTS和许多其他的东西将excel文件导入临时表。
  2. 你可以写一些简单的查询来做到这一点。 如果您使用的是SQL 2008,则可以使用"MERGE"来解决您的问题。

另一件事是性能是远远不同于C#。 你可以使用"TOP"子句来比较和做很多其他的事情。

希望能帮助到你。 干杯

不要担心与10Klogging的performance,你不会注意到它…

也许更好的方法是将excel文件导入临时表中,并用几个简单的sql查询来处理…你将节省开发时间,它可能会更好地执行…