导入导出向导SQL Server 2012
问题描述:
SQL Server导入/导出向导中是否有一项功能可以执行以下操作?如果是这样,我怎么能去了解它...导入导出向导SQL Server 2012
之前
+---------+-------------+----------+------+
| Name | Description | Delivery | Cost |
+---------+-------------+----------+------+
| dfdsf | dfgdfgdf | 34 | |
| sdfsdgf | dfgdfgdf | 324 | |
| dfg | dfgdfgdf | 23 | |
| dfgfdg | gdf | 43 | |
| dfgdfg | gdf | 23 | |
| fdgfdg | fgd | 443 | |
+---------+-------------+----------+------+
+---------+-------------+----------+------+
| Name | Description | Delivery | Cost |
+---------+-------------+----------+------+
| dfdsf | dfgdfgdf | 34 | |
| sdfsdgf | dfgdfgdf | 324 | |
| dfg | dfgdfgdf | 23 | |
| dfgfdg | gdf | 43 | |
| dfgdfg | gdf | 23 | |
| fdgfdg | fgd | 443 | |
| | | | 324 |
| | | | 324 |
| | | | 234 |
| | | | 234 |
| | | | 23 |
| | | | 423 |
+---------+-------------+----------+------+
所以我有上表:
- 我想从一个平面文件添加成本列( CSV源,在Excel上制作)。
- 我可以在不删除其他数据的情况下在向导上执行此操作吗?我已经尝试了向导中的多个不同选项,但我似乎一直删除数据或添加的数据创建另一组行,因此它看起来像是底部表。
我在这个表上有一个主键,我已经设置为1自动增加 - 我也有外键,但我必须暂时删除关系,以便我甚至可以将数据导入到桌子。
抱歉,格式不清楚 - 顶部表格代表我的表格,底部表格显示输入数据时发生的情况 - 我想要的是与旧数据对齐的成本列。
任何帮助将不胜感激。
答
如果您想要更新表格中的现有记录,您需要能够识别表格中的行与CSV文件中的行之间的关系。
要更新现有表中的行,请将CSV文件导入到单独的表中。然后运行如下所示的UPDATE语句,以使用新表中的数据更新现有表中的行。
UPDATE T
SET T.Cost = S.Cost
FROM dbo.MyTable AS T
JOIN dbo.CsvInput AS S
ON T.ID = S.ID
您如何将成本数据与表中现有数据进行匹配?表中的主键在CSV文件中是否有匹配的键? –
不,我没有尝试过 - 我的主表有一个主键ID。如果我在Excel中添加主键列,会发生什么情况。 – OneUnited