SQLSERVER從excel中批量導入數據 64位系統

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



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章