EXEC sp_configure 'show advanced options', 1;
RECONFIGURE;
EXEC sp_configure 'Ad Hoc Distributed Queries', 1;
RECONFIGURE;
--允許在進程中使用ACE.OLEDB.12
EXEC master.dbo.sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0', N'AllowInProcess', 1
--允許動態參數
EXEC master.dbo.sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0', N'DynamicParameters', 1
select * into [YTYJPT.MDF].[dbo].[表名]
from openrowset(
'Microsoft.Ace.OleDb.12.0',
'Excel 12.0;HDR=NO;IMEX=1;Database=C:\data\temp\excel文件名.xlsx',
[sheet1名字$])
--注意這裏,要先關閉外圍的設置,然後再關閉高級選項
exec sp_configure'Ad Hoc Distributed Queries',0
reconfigure
exec sp_configure'show advanced options',0
reconfigure
--關閉ACE.OLEDB.12的選項
EXEC master.dbo.sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0', N'AllowInProcess', 0
EXEC master.dbo.sp_MSset_oledb_prop N'Microsoft.ACE.OLED
可能出現問題:
因爲 OLE DB 訪問接口 'Microsoft.Ace.OleDb.12.0' 配置爲在單線程單元模式下運行
所以該訪問接口無法用於分佈式查詢 。
解決方案是
1、安裝Office 2010 64位版
2、Microsoft Access Database Engine 2010 的X64版本
我計算機系統是64位系統,64爲的sqlserver2008 R2