2016年11月21日 星期一

[SQL] 透過指令將xlsx匯入MSSQL




  • 需先設定安全配置,使用指令
 
sp_configure 'show advanced options', 1;  
GO  
RECONFIGURE;  
GO  
  
sp_configure 'Ad Hoc Distributed Queries', 1;  
GO  
RECONFIGURE;  
GO  



  • 下指令匯入資料庫,『D:\Text.xlsx』為檔案位置,『[sheet1$]』為檔案中要匯入的sheet名稱
 
SELECT  *  
FROM    OPENDATASOURCE ('Microsoft.ACE.OLEDB.12.0',  
                       'Excel 12.0;HDR=Yes;IMEX=1;Database=D:\Test.xlsx')... [sheet1$] 
 


  • 如果到這邊執行還有問題

消息 7399……鏈接伺服器 "(null)" 的 OLE DB 訪問介面 "Microsoft.ACE.OLEDB.12.0" 報錯。訪問被拒絕。消息 7301……無法從鏈接伺服器 "(null)" 的 OLE DB 訪問介面 "Microsoft.ACE.OLEDB.12.0" 獲取所需的介面("IID_IDBCreateCommand")。消息 7302……無法創建鏈接服務器 "(null)" 的 OLE DB 訪問接口 "MSDASC" 的實例


        可能原因:SQL Server(MSSQLSERVER) 的登陸身份不合適

          參考解決方案:將相關服務的登陸身份改為 local system

            操作方法:
            運行 services.msc,找到SQL Server(MSSQLSERVER),右鍵屬性,登陸相關選項卡,本地系統帳戶。

            開始---所有程序---MicrosoftSQL Server 2008 R2(或其他版本)---配置工具---SQLServer 配置管理器,找到SQL Server(MSSQLSERVER) ,右鍵屬性,登陸選項卡,內置帳戶改為Local system。
            最後,若在MSSQL JOB中也要用到此接口,則SQL Server代理(MSSQLSERVER)這個服務也要做相同修改。


                      Ref.
                      http://blog.csdn.net/helloword4217/article/details/19000277

                      沒有留言:

                      張貼留言