在微软发布64位ACE 12.0驱动程序之前,只能使用32位的Microsoft.Jet.OLEDB.4.0去访问Access和Excel文件。这种方式需要在64位环境下,先安装32位的SQL Server数据库实例作为媒介,然后在32位的SQL Server实例上,通过Microsoft.Jet.OLEDB.4.0数据库连接组件向Excel或Access文件创建连接服务器,最后向64位SQL Server实例上的SQL Server Express实例创建连接服务器。
现在,你可以使用64位ACE驱动程序进行数据访问。以下是详细的步骤:
1. 下载并安装64位ACE驱动程序。
2. 打开SQL Server Management Studio(SSMS),连接到64位SQL Server数据库实例并使用下面的T-SQL语句向Access数据库创建连接服务器:
EXEC sp_addlinkedserver
@server=N'MYACCESS',
@srvproduct=N'Access',
@provider=N'Microsoft.ACE.OLEDB.12.0',
@datasrc=N'D:\AccessData\test.mdb'
go
EXEC sp_addlinkedsrvlogin
@rmtsrvname=N'MYACCESS',
@useself=N'True'
GO
如果连接的是Excel文件,你还需要指定@provstr参数:
EXEC sp_addlinkedserver
@server=N'MYEXCEL',
@srvproduct=N'EXCEL',
@provider=N'Microsoft.ACE.OLEDB.12.0',
@datasrc=N'D:\AccessData\test.xlsx',
@provstr=N'Excel 12.0'
go
EXEC sp_addlinkedsrvlogin
@rmtsrvname=N'MYEXCEL',
@useself=N'True'
GO
3. 接下来就可以对连接服务器进行访问:
--访问Access文件
SELECT * FROM MYACCESS...Tasks
--访问Excel文件
SELECT * FROM MYEXCEL...[Books$]