Excel导入数据库

今天要用Excel导入 mssqlserver 2008(x64)数据库数据。

@strExcelSheetName 为EXCEL中单元薄的列名
SET @strExcelPath = '''Microsoft.JET.OLEDB.4.0'',''Data Source="' + @strExcelPath + '";User ID=Admin;Password=;Extended properties=Excel 5.0'''

'SELECT ' + @strExcelFiled +' INTO ##Temp FROM OpenDataSource('+ @strExcelPath +')...'+ @strExcelSheetName +'$ '

 执行以后出现

因为 OLE DB 访问接口 'Microsoft.Jet.OLEDB.4.0' 配置为在单线程单元模式下运行,所以该访问接口无法用于分布式查询。

的错误。 需要下载一个最新的驱动

http://www.microsoft.com/en-us/download/details.aspx?id=13255

下载一个ACE.Oledb.12.0 for X64位的驱动,并把连接字符串Microsoft.jet.Oledb.4.0 更改为 Microsoft.ACE.OLEDB.12.0

之后又出现

SQL Server 阻止了对组件 'Ad Hoc Distributed Queries' 的 STATEMENT 'OpenRowset/OpenDatasource' 的访问,因为此组件已作为此服务器安全配置的一部分而被关闭。系统管理员可以通过使用 sp_configure 启用 'Ad Hoc Distributed Queries'。有关启用 'Ad Hoc Distributed Queries' 的详细信息,请参阅 SQL Server 联机丛书中的 "外围应用配置器"。

的错误。解决方法:

服务器对象-->链接服务器-->Microsoft.Jet.OLEDB.4.0-->右键属性-->允许进程内   勾上即可

posted @ 2012-08-08 16:16  小蜗  阅读(222)  评论(0编辑  收藏  举报