2016-08-15 115 views
0

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自动增加 - 我也有外键,但我必须暂时删除关系,以便我甚至可以将数据导入到桌子。

抱歉,格式不清楚 - 顶部表格代表我的表格,底部表格显示输入数据时发生的情况 - 我想要的是与旧数据对齐的成本列。

任何帮助将不胜感激。

+0

您如何将成本数据与表中现有数据进行匹配?表中的主键在CSV文件中是否有匹配的键? –

+0

不,我没有尝试过 - 我的主表有一个主键ID。如果我在Excel中添加主键列,会发生什么情况。 – OneUnited

回答

0

如果您想要更新表格中的现有记录,您需要能够识别表格中的行与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 
相关问题