并非所有行都是使用SQL Server中的OPENROWSET从Excel文件导入的



我有一个Excel表,它有47列和14K行。我使用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...时,所有行都会成功导入。这种行为的原因是什么?

我使用的是SQL Server 2017 14.0.3356.2。

SQL Server代码的语法与文档中的示例代码略有不同。为了完全符合文档中代码的语法,它应该看起来像这个

INSERT INTO dbo.my_table
SELECT * FROM OPENROWSET
(
'Microsoft.ACE.OLEDB.12.0',
'Excel 12.0;HDR=Yes;Database=C:ExcelFile.xlsx',
[Sheet1$]
);

工作表的名称[Sheet1$]不再位于引号内,并且类似SQL的代码("SELECT*FROM"(被删除。

另一个可能的问题可能是指定HDR=Yes。有行的每一列是否都有一个没有空格和/或不寻常格式的标题?如果需要的话,这是需要考虑的。

相关内容

  • 没有找到相关文章

最新更新