SQL Server:从 Excel 导入,只需要新条目

Posted

技术标签:

【中文标题】SQL Server:从 Excel 导入,只需要新条目【英文标题】:SQL Server: importing from Excel, only want the new entries 【发布时间】:2010-01-14 17:08:39 【问题描述】:

任务是让 SQL Server 读取 Excel 电子表格,并仅将新条目导入表中。该实体称为Provider

考虑一个这样的 Excel 电子表格:

它的目标表是这样的:

任务是:

使用 2008 Express 工具集 导入到 SQL Sever 2000 中的现有表中 表中已有数据!有增量的身份是PK。这在另一个表中用作 FK,并进行了引用。 仅导入电子表格中的新行! 忽略电子表格中不存在的行

问题: 如何使用 SQL 2008 工具集(可能的导入和导出向导)来实现此目标?我怀疑我需要“编写查询以指定要传输的数据”。

问题是我找不到查询,因为该工具会生成以进行微调。

【问题讨论】:

【参考方案1】:

我可能会做的是将 excel 数据批量加载到数据库中的单独临时表中,然后在主表上运行 INSERT 以复制不存在的记录。

例如

INSERT MyRealTable (ID, FirstName, LastName,.....)
SELECT ID, FirstName, LastName,.....
FROM StagingTable s
    LEFT JOIN MyRealTable r ON s.ID = r.ID
WHERE r.ID IS NULL

完成后删除临时表。

【讨论】:

如果您使用的是 SQL Server 2008,请务必使用新的 MERGE 命令!【参考方案2】:

如果需要,您也可以在加载该阶段表之前对其进行一些更新以进行清理。更新集名称 = RTROM(LTRIM(名称)) 以您的.STAGE.TABlE 为例

【讨论】:

以上是关于SQL Server:从 Excel 导入,只需要新条目的主要内容,如果未能解决你的问题,请参考以下文章

Java Spring 将 Excel 导入 SQL Server

从 Excel 到 SQL Server 的数据导入无法导入所有数据

Excel中如何导入SQL Server里的数据

在 SQL Server 2008 中将数据从浮点类型的 Excel 导入 varchar

从 excel 导入数据时防止 SQL Server 2008 中的行重复

从 Excel 导入 SQL Server 2005 时出现截断错误