当我尝试将数据从Excel导入SQL 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,Level 16,State 1,Line 1
OLE DB提供程序“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,Level 16,State 1,Line 1
SQL Server阻止访问组件“Ad Hoc Distributed Queries”的STATEMENT“OpenRowset / OpenDataSource”,因为该组件作为服务器安全配置的一部分被关闭。系统管理员可以使用sp_configure启用“Ad Hoc Distributed Queries”。有关启用“Ad Hoc Distributed Queries”的详细信息,请参阅联机丛书中的“Surface Server配置曝光”。
使用此代码编辑代码后,我在此处找到了它: Get Excel sheet into temp table using a script
stackoverflow中的
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,Level 16,State 1,Line 1
无法为链接服务器创建OLE DB提供程序“MICROSOFT.ACE.OLEDB.12.0”的实例“(null)”
请帮助
答案 0 :(得分:-2)
右键单击您的OLEDB Providor并转到“属性”并选中“允许进行中”