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 的数据导入无法导入所有数据
在 SQL Server 2008 中将数据从浮点类型的 Excel 导入 varchar