【发布时间】:2020-10-01 09:13:34
【问题描述】:
我有一个 47 列和 14K 行的 Excel 表。我使用 OPENROWSET 将此数据导入 SQL Server:
INSERT INTO dbo.my_table
SELECT * FROM OPENROWSET
(
'Microsoft.ACE.OLEDB.12.0',
'Excel 12.0;HDR=Yes;Database=C:\ExcelFile.xlsx',
'SELECT * FROM [Sheet1$]'
);
但是,只导入了 5138 行。一段时间后,导入的行数减少到 5052,即每次 - 不同的行数。
但是,当我使用Tasks -> Import Data... 时,all 行已成功导入。
这种行为的原因是什么?
我使用的是 SQL Server 2017 14.0.3356.2。
【问题讨论】:
-
电子表格中的数据是否存在空白(即空白行)?
-
@Larnu 没有。没有间隙。正如我所指出的,
Import Data工作得很好。这意味着OPENROWSET也应该可以正常工作。 -
@JohnyL 如果您可以添加示例数据,将更容易理解您的问题。
-
@droebi 数据很敏感,但我会尝试用虚拟值替换它。
-
@SteveFord SteveC 的回答成功了——问题出在语法上,尽管还需要做一件事(见我的评论)。无论如何,谢谢你的回答!
标签: sql-server openrowset aceoledb