0

クエリの結果行を Excel ファイルに書き込みたい:

INSERT into OPENROWSET('Microsoft.ACE.OLEDB.12.0', 
'Excel 12.0;Database=C:\temp\testing.xlsx;', 
'SELECT Id,CompanyName FROM [Sheet1$]') 
select Id,CompanyName   from tbl_Company

しかし、このクエリを実行すると、次のエラーが発生します。

メッセージ 7302、レベル 16、状態 1、行 3 リンク サーバー "(null)" の OLE DB プロバイダー "Microsoft.ACE.OLEDB.12.0" のインスタンスを作成できません。

このコードを実行する前に行うこと:

1 - 「2007 Office System Driver: Data Connectivity Components」をインストールしました

2 - Excel を使用するための構成スクリプトを実行:

 sp_configure 'show advanced options', 1;
GO
RECONFIGURE;
GO
sp_configure 'Ad Hoc Distributed Queries', 1;
GO
RECONFIGURE;
GO

3 - SQL Server サービスのログイン アカウントをローカル アカウントに変更する

4 - Excel ファイル フォルダーに対するフル アクセス許可をローカル アカウントに追加しました。

5 - SQL サービスの再起動

しかし、私の問題は残っています

サーバー: Windows Server 2008

MS Office がサーバーにインストールされていない

SQL Server 2014 64 ビット SP1

4

1 に答える 1

0

間違えました:

この構成スクリプトを実行する必要があります

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 

また、Access データベース エンジンの 64 ビット バージョンを必ずインストールする必要があります (SQL サーバーが 64 ビットの場合)。

于 2016-05-09T10:29:49.533 に答える