我在Win2008 R2(64位,未装Office)的SQL Server 2008R2上,用链接数据库链接了另外一台电脑(Win2003,32位)上的ACCESS数据文件:
EXEC master.dbo.sp_addlinkedserver @server = N'RTX_ACC', @srvproduct=N'ACCESS', @provider=N'Microsoft.ACE.OLEDB.12.0', @datasrc=N'\\rtx\rtxdb.mdb'
EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname=N'RTX_ACC',@useself=N'False',@locallogin=N'sa',@rmtuser=N'admin',@rmtpassword=NULL
链接完成后,在Win2008 R2上用操作系统的本地管理员用户(SQLS\Administrator)查询该链接数据库正常,但是用sa查询的时候出现异常提示:
链接服务器"RTX_ACC"的 OLE DB 访问接口 "Microsoft.ACE.OLEDB.12.0" 返回了消息 "Microsoft Access 数据库引擎无法打开文件“\\rtx\rtxdb.mdb”或向其写入数据。它已经被其他用户以独占方式打开,或者您没有查看和写入其数据的权限。"。
消息 7303,级别 16,状态 1,第 1 行
无法初始化链接服务器 "RTX_ACC" 的 OLE DB 访问接口 "Microsoft.ACE.OLEDB.12.0" 的数据源对象。
网上找了很多方法,试不出问题出在哪里。请高手指点一下!
------解决思路----------------------
SELECT CustomerID, CompanyName
FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0',
'C:\Program Files\Microsoft Office\OFFICE11\SAMPLES\Northwind.mdb';
'admin';'',Customers);
--直接用语句连
------解决思路----------------------
EXEC sp_addlinkedserver
@server = 'SEATTLE Mktg',
@provider = 'Microsoft.Jet.OLEDB.4.0',
@srvproduct = 'OLE DB Provider for Jet',
@datasrc = 'C:\MSOffice\Access\Samples\Northwind.mdb'
GO
链接服务器方法