在Excel中将excel加载到表中

时间:2015-09-14 06:59:52

标签: sql sql-server database sql-server-2008

我想使用sql查询将数据从excel加载到表

我发现使用openrowset但是它抛出了错误:

Cannot create an instance of OLE DB provider "Microsoft.Jet.OLEDB.4.0" 
for linked server "(null)".




 SELECT * into temptable
FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0',
                'Excel 8.0;Database=E:\Users\koushik.veldanda\New Microsoft Excel Worksheet.xlsx;IMEX=1',
                'SELECT * FROM [Sheet1$]')

1 个答案:

答案 0 :(得分:0)

首先,您必须启用'Ad Hoc Distributed Queries'

sp_configure 'Ad Hoc Distributed Queries', 1;
GO
RECONFIGURE;
GO

然后你必须按照下面的链接说明来解决这个错误

  

OLE DB提供程序Microsoft.Ace.OLEDB.12.0用于链接服务器(null)一些

http://www.aspsnippets.com/Articles/The-OLE-DB-provider-Microsoft.Ace.OLEDB.12.0-for-linked-server-null.aspx

成功按照上述说明操作后,如果出现此错误,则必须重新启动机器

  

从接收结果时发生传输级别错误   服务器

然后你可以运行你的查询

SELECT * into newtable
FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0',
    'Excel 12.0 Xml;HDR=YES;Database=D:\Personal\MyTest.xlsx',
    'SELECT * FROM [Sheet1$]');

然后刷新数据库,您会看到使用数据创建新表