当我试图将数据从Excel导入到Server中的一个表时,我遇到了一个问题,我完全被阻塞了
我在Windows 7 64位,SQL Server 2008 Express上。我导入文件格式(.xls)
下面是代码:
SELECT Table_1.Champ1 , Table_1.Champ2
FROM Table_1
INNER JOIN OPENROWSET('Microsoft.Jet.OLEDB.4.0',
'Excel 8.0;Database=C:\Users\AA\Desktop\Classeur1.xls;',
'SELECT [Champ1], [Champ2] FROM [Feuil1$]') T
ON Table_1.Champ1 = T.[Champ1]这是一个错误:
Msg 7308,第16级,状态1,第1行 OLE提供程序'Microsoft.Jet.OLEDB.4.0‘不能用于分布式查询,因为该提供程序配置为在STA模式下运行。
我忘了我也这么做了
当然,我把我的疑问改为
SELECT Table_1.Champ1 , Table_1.Champ2
FROM Table_1
INNER JOIN OPENROWSET('MICROSOFT.ACE.OLEDB.12.0',
'Excel 8.0;Database=C:\Users\AA\Desktop\Classeur1.xls;',
'SELECT [Champ1], [Champ2] FROM [Feuil1$]') T
ON Table_1.Champ1 = T.[Champ1]这是一个错误:
Msg 15281,16级,状态1,第1行 server阻止对组件'Ad分布式查询‘的语句'OpenRowset / OpenDataSource’的访问,因为该组件作为服务器安全配置的一部分被关闭。系统管理员可以使用sp_configure启用“Ad分布式查询”。有关启用“Ad分布式查询”的详细信息,请参阅Server联机丛书中的“表面积配置暴露”。
在我使用这段代码编辑代码之后,我在这里找到了它:Get Excel sheet into temp table using a script
堆叠溢出
sp_configure 'show advanced options', 1;
RECONFIGURE;
GO
sp_configure 'Ad Hoc Distributed Queries', 1;
GO
RECONFIGURE;
GO在我执行我的查询之后
SELECT Table_1.Champ1 , Table_1.Champ2
FROM Table_1
INNER JOIN OPENROWSET('MICROSOFT.ACE.OLEDB.12.0',
'Excel 8.0;Database=C:\Users\AA\Desktop\Classeur1.xls;',
'SELECT [Champ1], [Champ2] FROM [Feuil1$]') T
ON Table_1.Champ1 = T.[Champ1]错误更改为:
Msg 7302,第16级,状态1,第1行 无法创建OLE DB提供程序"MICROSOFT.ACE.OLEDB.12.0“用于链接服务器的实例(Null)
请帮帮忙
发布于 2017-02-06 07:05:38
右键单击OLEDB提供程序并转到Properties并检查进程中的允许
https://stackoverflow.com/questions/22280755
复制相似问题