SQL SERVER 2008 64位系统无法导入ACCESS/EXCEL怎么办
操作系统WindowsServer2008X64,数据库SQLServer2008X64,Office2007(好像只有32位),在存储过程执行OpenDatasource导入Access数据的时候遇到问题了,Oledb4.0已经不被支持,以下是遇到的若干错误提示:
因为OLEDB访问接口'Microsoft.Jet.OLEDB.4.0'配置为在单线程单元模式下运行,所以该访问接口无法用于分布式查询。
无法创建链接服务器"(null)"的OLEDB访问接口"Microsoft.Ace.OLEDB.12.0"的实例。
因为OLEDB访问接口'Microsoft.Ace.OLEDB.12.0'配置为在单线程单元模式下运行,所以该访问接口无法用于分布式查询。
解决方案是安装Office201064位版,网上有很多下载,然后下载MicrosoftAccessDatabaseEngine2010的X64版本,网上也有下载,两者缺一不可。
然后改一下OpenDatasource参数,将Microsoft.Jet.OLEDB.4.0改为Microsoft.ACE.OLEDB.12.0,大功告成。
贴上存储过程部分代码:
--开启导入功能 execsp_configure'showadvancedoptions',1 reconfigure execsp_configure'AdHocDistributedQueries',1 reconfigure --允许在进程中使用ACE.OLEDB.12 EXECmaster.dbo.sp_MSset_oledb_propN'Microsoft.ACE.OLEDB.12.0',N'AllowInProcess',1 --允许动态参数 EXECmaster.dbo.sp_MSset_oledb_propN'Microsoft.ACE.OLEDB.12.0',N'DynamicParameters',1 --导入临时表 exec('insertintojihua(id,[批次号],Right('''+@filepath+''',charindex(''\'',REVERSE('''+@filepath+'''))-1),getdate()FROMOPENDATASOURCE(''Microsoft.ACE.OLEDB.12.0'',''DataSource='+@filepath+';UserID=Admin;Password='')...计划汇总表') --注意这里,要先关闭外围的设置,然后再关闭高级选项 execsp_configure'AdHocDistributedQueries',0 reconfigure execsp_configure'showadvancedoptions',0 reconfigure --关闭ACE.OLEDB.12的选项 EXECmaster.dbo.sp_MSset_oledb_propN'Microsoft.ACE.OLEDB.12.0',N'AllowInProcess',0 EXECmaster.dbo.sp_MSset_oledb_propN'Microsoft.ACE.OLEDB.12.0',N'DynamicParameters',0
以上内容仅是我的个人见解,相信解决办法不止以上所述,希望大家多多分享自己的意见,共同交流学习进步。希望本文关于SQLSERVER200864位系统无法导入ACCESS/EXCEL的解决方案对大家有所帮助。