将SQL数据库中的logging与Excel进行比较,并相应地更新数据库
我有一个约100列,约10000行的表。 我将定期收到一个具有类似数据的Excel,现在我需要更新表格。 如果Excel中存在新行,我必须将它们添加到数据库。 如果旧行已经更新,我需要更新数据库中的行。 如果某些行已被删除,我需要从主表中删除该行并添加到另一个表中。
我曾想过如下进行:
从数据库中获取所有行到DataSet中。 将Excel中的所有行导入到DataSet中。 现在使用连接比较这两个数据集并执行所需的操作。
我从来没有这样的数据工作,并担心performance。 让我知道实现这一要求的理想方法。
提前致谢。 🙂
正如我的经验所说,如果您select在t-sql中执行如下操作,那么这么简单:
- 您可以在SQL Server中使用
"OPENROWSET"
,"OPENQUERY"
,链接的服务器,DTS和许多其他的东西将excel文件导入临时表。 - 你可以写一些简单的查询来做到这一点。 如果您使用的是SQL 2008,则可以使用
"MERGE"
来解决您的问题。
另一件事是性能是远远不同于C#。 你可以使用"TOP"
子句来比较和做很多其他的事情。
希望能帮助到你。 干杯
不要担心与10Klogging的performance,你不会注意到它…
也许更好的方法是将excel文件导入临时表中,并用几个简单的sql查询来处理…你将节省开发时间,它可能会更好地执行…