将数据从Excel导入SQL Server
我想导入一个Excel文件到SQL Server,但我面临一个错误。
我的代码:
create table test ( AccountNumber varchar(50), AccountName varchar(50), ParentAccountNumber varchar(50) ) select * into test FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0', 'Excel 8.0;Database=D:\testing.xls;HDR=YES', 'SELECT * FROM [Sheet1$]')
错误:
消息7302,级别16,状态1,行10
无法为链接服务器“(null)”创buildOLE DB提供程序“Microsoft.Jet.OLEDB.4.0”的实例。
注意:
- Excel版本:2007
- SQL Server版本:2012
如果你不知道编写脚本,你可以通过向导本身来完成。
- 右键点击你想导入你的excel文件的数据库名称。 select任务 – >导入。
- 新build向导将打开并select源为Microsoft excel和目标为Sql服务器,并进行身份validation。
- rest都是自我展开的。
- 您可以在导入之前预览数据,并且可以控制要导入的列。
- Atlast点击完成运行包。
- 将承认你的成功导入。
在创build表后试试这个,
INSERT INTO test (AccountNumber , AccountName , ParentAccountNumber) SELECT * FROM OPENROWSET ('Microsoft.Jet.OLEDB.4.0', 'Excel 8.0;Database=D:\testing.xls;HDR=YES', 'SELECT * FROM [Sheet1$]');
尝试运行下面的代码:
EXEC master.dbo.sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0' , N'AllowInProcess' , 1 GO EXEC master.dbo.sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0' , N'DynamicParameters' , 1 GO select * FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0', 'Excel 12.0;Database=D:\testing.xls;HDR=YES', 'SELECT * FROM [Sheet1$]')
确保您的Excel表格在运行此代码时closures。