我正在尝试使用源CSV文件中的新列更新我的一个SQL表。此文件中的CSV记录已在此SQL表中,但此SQL表缺少此CSV文件中的一些新列。
我已经通过ALTER TABLE将新列添加到我的SQL表结构中。但现在我只需要将此CSV文件中的数据导入新列。我怎样才能做到这一点?我正在尝试使用SSIS和SQL Server来实现这一目标,但对于Excel来说这是一个新手。
答案 0 :(得分:3)
解决救恩问题可能为时已晚;虽然我是为未来的读者发布的! 您可以通过解析csv文件生成SQL INSERT / UPDATE / etc命令(一个简单的python脚本可以)。
您也可以使用此在线解析器: http://www.convertcsv.com/csv-to-sql.htm (希望点击时它仍然可用!) 生成SQL命令。界面非常简单,它以一种很棒的方式完成整个工作。
答案 1 :(得分:2)
您有几种选择:
如果要将数据加载到可以编辑目标表的非生产系统中,则可以将数据加载到新表中,将旧表重命名为过时,并将新表重命名为旧表名。
您可以将数据加载到临时表中,然后编写SQL语句以从登台表更新目标表。
您可以在Excel中打开CSV文件并编写公式以生成更新脚本,将公式向下拖动到所有行,以便为每行获取单独的更新语句,然后运行单独的更新语句在管理工作室。
如果您的CSV文件中包含完整的历史记录,则可以截断目标表并更新导入文件的现有ssis包以使用新列。
还有更多选择,但上述任何一种选择都可能不仅仅是适当的解决方案。