把EXCEL資料匯入到SQL SERVER資料庫中,資料匯入sql
方法一。。
直接看操作步驟
在資料庫上點擊右鍵,然後選擇“任務”,選擇“匯入資料”,我們就看到彈出淡入資料的對話方塊
Excel 上面的欄位命名最好跟要匯入到最終的那個表的欄位相同。假設終表為A表。組裝好 如:
按照操作步驟走下去,最終會產生一個新的表(暫存資料表B表)。
我們可以藉助工具,MSSQL表資料匯出成Insert語句的工具 即:將查詢出來的這些資料都產生insert into語句。
最終在A表中執行該insert into語句就可以將excel中的資料最終放入資料庫中。
方法二:
通過語句 直接匯入
insert into hr_staff(uuid,dept,staff_name,gender,nation,birthday,political,native_city,identy,
position,pos_level,work_date,pos_begin,gradschool,professional,degree,education,remark)
select * from OpenRowSet('Microsoft.ACE.OLEDB.12.0', 'Excel 8.0;HDR=Yes;IMEX=1;Database=D:\13.xls', 'select * from [sheet1$]')
看excel的寫法 excel上的欄位要跟上面的insert into 中的欄位一致
用這個語句會遇到一大堆問題,問題我們跟著提示一步步解決。
問題一:
OLE DB 提供者 'Microsoft.Jet.OLEDB.4.0' 配置為在單一執行緒 Apartment模式下運行,所以該提供者無法用於分散式查詢解決方案:a.執行以上sql語句的資料庫必須是本機資料庫,如果為遠端資料庫就會報上面的錯誤。b.在64SQL Engine中已經不提供jet.oledb.4.0的驅動了,解決方案:下載一個ACE.Oledb.12.0 for X64位的驅動,並把連接字串Microsoft.jet.Oledb.4.0 更改為 Microsoft.ACE.OLEDB.12.0問題二:無法建立連結的伺服器 "(null)" 的 OLE DB 提供者 "Microsoft.Ace.OLEDB.12.0" 的執行個體。解決方案:--開啟匯入功能
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