通过覆盖将Excel表导入SQL

时间:2014-08-21 21:11:34

标签: sql database excel csv

我有一个Excel文件,它完全映射到SQL Server中的表。我试图导入但是我得到了UNIQUE KEY错误。

如何使用excel文件中的exitsitng值覆盖数据库表中的exisitng值?我可以转换为csv。如果这是任何帮助。我可以写一个声明来做这个吗?

非常感谢任何指导。

谢谢

2 个答案:

答案 0 :(得分:0)

请显示整个错误。如果您有UNIQUE KEY Error,则必须使用主键创建更新查询。您可能必须编写SQL查询。

答案 1 :(得分:0)

  1. 使用与该表相同的DDL(在数据库中)创建第二个表。

  2. 然后,将Excel文件导入新创建的表格中。

  3. 从实际表(不是上面创建的表)中删除构成唯一键约束的列与新插入到新创建的表中的行的行匹配的所有行。

  4. 然后将第二个新创建和填充的表中存在的所有行插入实际表中。因为您刚刚删除了要覆盖的值的行,所以您将不再违反唯一约束。

  5. 如果您提供表的列名和构成唯一约束的列,我可以帮助您在需要时编写#3的查询。

    第3步将是:

    delete from table_name
     where unique_id in
           (select unique_id from newly_created_table_in_step1_and_2)