我想通过 SQL Server R2 实例访问我的 MS Access 数据库。
是否可以?如果是,比怎么样?
简短的回答:
开放数据源
http://msdn.microsoft.com/en-us/library/ms179856.aspx
我这里有几个例子
恕我直言,我的示例不是“直接命中”,但很有帮助。
来自 MSDN 文章的示例:
SELECT * FROM OPENDATASOURCE('Microsoft.Jet.OLEDB.4.0',
'Data Source=C:\DataFolder\Documents\TestExcel.xls;Extended Properties=EXCEL 5.0')...[Sheet1$] ;
这是一个更长的版本。但是,您需要列出您的 Sql Server 版本(32 或 x64)、您的操作系统。x64 Sql Server 与 Jet 数据库通信时会出现一些问题。
/* Setup */
/*
--Run this ONCE
sp_configure 'show advanced options', 1;
GO
RECONFIGURE;
GO
sp_configure 'Ad Hoc Distributed Queries', 1;
GO
RECONFIGURE;
GO
EXEC master.dbo.sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0', N'AllowInProcess', 1
GO
EXEC master.dbo.sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0', N'DynamicParameters', 1
GO
RECONFIGURE;
GO
*/
CREATE VIEW [dbo].[vwJetDatabaseWrapper]
AS
/*
SELECT * FROM OPENDATASOURCE('Microsoft.Jet.OLEDB.4.0',
'Data Source=C:\work2\DotNet\MultiRDBMSSupport\DataStores\AccessDatabaseCopy\Nwind.mdb;')...[Customers] ;
*/
/* OR */
SELECT * FROM OPENDATASOURCE('Microsoft.ACE.OLEDB.12.0',
'Data Source=C:\work2\DotNet\MultiRDBMSSupport\DataStores\AccessDatabaseCopy\Nwind.mdb;')...[Customers] ;
GO
您将使用链接服务器。这是我发现的一个链接,其中包含一个几乎与您的问题完全相同的问题,并就如何设置它进行了很好的讨论。
http://social.msdn.microsoft.com/Forums/en/sqlgetstarted/thread/589ca193-3541-4c5e-965c-4c515d6b476b