关于解决SQL2005不能导入EXCEL数据问题的技术公告

来源:这里教程网 时间:2026-03-02 10:30:00 作者:

关于解决SQL 2005不能导入EXCEL数据问题的技术公告

 

近期发现SQL Server 2005在导入EXCEL数据时报错,经分析后发现,故障出在以下技术点:

SELECT *

FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',

'Data Source="E:客户信息.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...[sheet1$]

SQL Server 2005以后的版本将不再支持Jet.OLEDB技术,即不再兼容以前的这种写法。所有涉及到的程序和工具都必须改写成以下格式:

select *  from 

opendatasource('Microsoft.ACE.OLEDB.12.0',

'Data Source="E:客户信息.xls";

Extended properties="Excel 5.0;hdr=yes;imex=1;"')...[sheet1$]

经调试验证,以上写法可以解决问题,但在使用上述技术前,需要两个问题要解决:

1.              操作系统必须支持Microsoft.ACE.OLEDB.12.0,为此,32位操作系统必须安装补丁“AccessDatabaseEngine.exe”,64位操作系统必须安装补丁“AccessDatabaseEngine64.exe”,值得注意的是,在64位操作系统上安装这个补丁,必须卸载以前所有的32位的OFFICE

2.              SQL SERVER 2005为了安全默认不支持导入EXCEL,必须使用语句打开,如下:

exec sp_configure 'show advanced options',1

reconfigure

exec sp_configure 'Ad Hoc Distributed Queries',1

reconfigure

作为良好的习惯,导入完成后,可以再关闭这个设置:

exec sp_configure 'show advanced options',0

reconfigure

exec sp_configure 'Ad Hoc Distributed Queries',0

reconfigure

基于以上认识,我们已经为多台电脑排除了故障,因此需要我们改写程序和工具,或采用新的EXCEL读写技术,以兼容SQL 2005和高版本的操作系统,在目前的情况下,在实际工作中可以先在有条件使用EXCEL导入工具的电脑上完成数据导入工作。

上述两个补丁已经在网站提供工具下载。

研发办公室

20131226

<!-- 正文结束 -->

相关推荐