因為網友在問說, 怎麼樣把 Excel 的資料和 SQL Server 的資料做 Join Query
之前有實作 Orcale Linked Server 的經驗, 所以猜想 Excel 應該也可以這樣實作
拜了 Google 大神一下,還真的有人實作成功...
因為網友在問說, 怎麼樣把 Excel 的資料和 SQL Server 的資料做 Join Query
之前有實作 Orcale Linked Server 的經驗, 所以猜想 Excel 應該也可以這樣實作
拜了 Google 大神一下… 還真的有人實作成功
Excel Import to SQL Server using Linked Servers
所以在這邊 Memo 紀錄一下
前置作業
Step1 : 安裝 Microsoft Access Database Engine 2010 可轉散發套件
這組套件是協助 Microsoft SQL Server 存取現有 Microsoft Office 檔案的資料
例如 : Microsoft Office Excel 2010 (*. xls、*. xlsx 和 *.xlsb)
和 Microsoft Office Access 2010 (*. mdb 和 *. accdb)
P.S 安裝後, 請務必重開機… 不然會無法使用該套件~
Step2 : 執行下列 T-SQL , 提高上述的轉發套件的存取權限
EXEC sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0', N'AllowInProcess', 1
GO
EXEC sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0', N'DynamicParameters', 1
GO
建立 Excel 的 Linked Server
下圖是我們要使用的 Excel 資料表
開啟 SQL Server Management Studio → Server Objects(伺服器物件)
→ Linked Servers(連結的伺服器)
點擊右鍵選取 New Linked Server(新增連結的伺服器(N))
選擇 Other Data Source(其他資料來源) → Provider(提供者)
選取 Microsoft Office 12 Access Database Enfine OLE DB Provider
依序輸入
Linked Server(連結的伺服器) : Excel_Service > 可自由輸入
Product Name(產品名稱) : Excel
Data Source(資料來源) : C:\XXX\OOO.xlsx > Excel 目標對象
Provider String(提供者字串) : Excel 12.0;IMEX=1;HDR=YES
點擊 OK(確定) 即可產生如下列的 Linked Server
選取其中工作表建立查詢指令
查詢完後的結果就如同原 Excel 一般
也可以使用 Count 函數 & Join Table