SQL Server R2 インスタンスを介して MS Access データベースにアクセスしたいと考えています。
出来ますか?はいの場合、どのように?
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)、O/S をリストする必要があります。x64 Sql サーバーでは、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