使用 SSMS 导入数据文件的解决方案

Solution for importing a data file with SSMS

提问人:user22587164 提问时间:9/19/2023 最后编辑:Joel Coehoornuser22587164 更新时间:9/19/2023 访问量:65

问:

SSMS 在尝试导入包含 3lacs+ 行的文件时显示以下错误。.xlsx

我现在该怎么办?

“Microsoft.ACE.OLEDB.12.0”提供程序未在本地计算机上注册。(System.Data) ------------------------------

我原以为它会成功导入......而以前我的文件的格式,我想只有 16383 行的限制。因此,我尝试使用格式,但问题如所表达.xls.xlsx

SQL SQL Server Excel

评论

2赞 Joel Coehoorn 9/19/2023
无需将任何内容导入 SSMS。SSMS 只是一个接口。这就像告诉我们你开的车是索尼,因为这是你在仪表板收音机上看到的品牌。对某些人来说很好,但从所谓的机械师那里令人震惊。
0赞 LONG 9/19/2023
在目标服务器或计算机上安装 Microsoft Access 数据库引擎。或者将 excel 转换为平面文件,然后使用“导入平面文件”或“导入数据”选项通过 SSMS 导入
1赞 Dale K 9/19/2023
什么单位是?lac

答:

1赞 rotabor 9/19/2023 #1

最好的方法是使用独立的 SQL Server XXXX 导入和导出数据实用工具:SQL Server XXXX Import And Export Data

1赞 Senthil P Nathan 9/19/2023 #2

安装 Microsoft Access 数据库引擎:

从 Microsoft 官方网站下载并安装相应版本(32 位或 64 位)的 Microsoft Access 数据库引擎。 重新启动 SQL Server Management Studio (SSMS):安装后,重新启动 SSMS 以应用更改。

确保兼容性:确保 SSMS 和已安装的驱动程序具有相同的位数(32 位或 64 位)以实现兼容性。

关闭 Excel 文件:确保要导入的 Excel 文件在导入 SSMS 时未在 Excel 或任何其他应用程序中打开。

完成这些步骤后,您应该能够导入 .xlsx 文件而不会遇到错误。

如果没有,请尝试将文件转换为csv并导入它,它将执行您想要的操作。

BULK INSERT dbo.sample_table 
FROM 'D:\PROJECTS\abc.csv'
WITH (
    FIELDTERMINATOR = ';',
    ROWTERMINATOR = '\n',
    FIRSTROW = 2 -- if your file has a header row, set this to 2 to skip it
);