将数据从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

如果你不知道编写脚本,你可以通过向导本身来完成。

  1. 右键点击你想导入你的excel文件的数据库名称。 select任务 – >导入。
  2. 新build向导将打开并select源为Microsoft excel和目标为Sql服务器,并进行身份validation。
  3. rest都是自我展开的。
  4. 您可以在导入之前预览数据,并且可以控制要导入的列。
  5. Atlast点击完成运行包。
  6. 将承认你的成功导入。

在创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。