2010-08-27 43 views
1

我想用我的源CSV文件中的新列更新我的一个SQL表。此文件中的CSV记录已存在于此SQL表中,但此SQL表缺少此CSV文件中的一些新列。使用CSV数据更新SQL表?

我已经通过ALTER TABLE将新列添加到我的SQL表结构。但是现在我只需要将这个CSV文件中的数据导入到新列中。我怎样才能做到这一点?我正在尝试使用SSIS和SQL Server来完成这一任务,但对于Excel来说这很新颖。

+0

这看起来像是一个简单的更新声明给我。我错过了什么吗? – starskythehutch 2010-08-27 14:12:36

+0

@starsky - 当他说“这个文件中的CSV记录已经在这个SQL表中了”时,是的,我认为这不完全正确。他们仍然在CSV文件中。但是SQL表中有相同键的记录。 – 2010-08-27 14:21:34

+0

谢谢你们。我应该解释一下。我需要为超过1500行的新列更新数据,因此我不想手动执行此操作。为什么,有没有简单的方法来用SQL来做到这一点?否则,我会尝试在SSIS中导入/导出向导。 – salvationishere 2010-08-27 16:03:23

回答

2

您有几种选择:

  1. 如果你将数据装入一个非生产系统,您可以编辑目标表,您可以将数据加载到新表,重命名旧表过时,并将新表重命名为旧表名。

  2. 您可以将数据加载到登台表中,然后编写SQL语句以从登台表中更新目标表。

  3. 您可以在Excel中打开CSV文件并编写公式以生成更新脚本,将公式向下拖到所有行中,以便为每行获取单独的更新语句,然后在单独的更新语句中运行管理工作室。

  4. 如果在CSV文件中有完整的历史记录,则可以截断目标表并更新现有的ssis包,以导入文件以使用新列。

还有更多的选择,但以上任何一种可能都不是足够的解决方案。

3

这可能为时已晚,解决了拯救这个问题;尽管我为未来的读者发布这篇文章! 你可以通过解析csv文件(一个简单的python脚本)来生成SQL INSERT/UPDATE/etc命令。

你可以选择使用这个网络分析器: http://www.convertcsv.com/csv-to-sql.htm (!希望当你点击它会仍然可用) 来生成SQL命令。界面非常直观,它以完美的方式完成整个工作。