【问题标题】:Import Excel table to SQL by overwritting通过覆盖将 Excel 表导入 SQL
【发布时间】:2014-08-21 21:11:33
【问题描述】:

我有一个精确映射到 SQL Server 中的表的 Excel 文件。我尝试导入,但收到 UNIQUE KEY 错误。

如何用 excel 文件中的值覆盖数据库表中的现有值?我可以转换为csv。如果这有任何帮助。有没有我可以写的声明来做到这一点?

任何指导将不胜感激。

谢谢

【问题讨论】:

    标签: sql database excel csv


    【解决方案1】:
    1. 使用与该表相同的 DDL 创建第二个表(在数据库中)。

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

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

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

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

    第 3 步类似于:

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

    【讨论】:

    • 因此,如果我以以下形式编写查询:SELECT * FROM databaseWHERE uniqueid = 'XXXXXXX, XXXXXXX, XXXXXXX',DELETE FROM databaseWHERE uniqueid = '12345, 12346, 12347', 我在正确的轨道上吗?我想我会针对该表的导出查找 id 以获得值。
    • @user3845582 如果唯一约束仅在一个字段上,则可以,但是对于多个值,您将使用 IN ('x','y','z')
    【解决方案2】:

    请显示整个 ERRO。如果您有 UNIQUE KEY 错误,那么您必须使用主键创建更新查询。您可能需要编写 TSQL 查询。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-11-21
      • 2011-03-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-10
      相关资源
      最近更新 更多