【问题标题】:Upload an excel file and add/update record in Database上传excel文件并在数据库中添加/更新记录
【发布时间】:2014-07-16 21:27:22
【问题描述】:

我正在开发一个上传 EXCEL 文件并将这些记录(表 1)添加/更新到 SQL 服务器的功能。现在我可以使用this link 在 SQL Server 中添加数据了。

但它的作用是截断表并再次添加值。我不想这样做,因为有 30% 的数据是通用的,无法删除。 excel表中有一个名为OSID的字段,在数据库中有一个相同的字段。这是我表中的唯一键。我想要做的是仅更新数据库中与 excel 表中数据库中的键匹配的那些值。

【问题讨论】:

  • 你需要做的是准备merge命令,遍历每个excel行,并执行合并。当该行不存在时,合并添加行。使用参数化查询提高效率。
  • 看看里面的代码。它应该(但不)使用截断。它删除所有行,然后在电子表格中插入每一行。我同意@T.S.,为此使用 MERGE。
  • 谢谢,我会尝试将这些记录添加到陈述表中,并尝试将记录与联接查询合并。

标签: c# sql sql-server excel asp.net-mvc-4


【解决方案1】:

我建议使用该链接中的代码将 excel 数据导入单独的临时表,并通过连接到临时表来更新主表。

从那个链接,他们使用的表名是 tdatamigrationtable。您的更新查询看起来像

update m set m.col1=s.col1, m.col2=s.col2, m.col3=s.col3 
from dbo.mytable m 
  inner join dbo.tdatamigrationtable s on m.osid = s.osid;

【讨论】:

  • Ok Grate,我想到了这一点,但想知道是否有任何简单的解决方案。我将尝试实施,并会回复您。
  • @arpanshah 你最终对这个问题做了什么?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-08
  • 2015-01-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多