將excel導入sqlserver2008的表中引發的問題

1. 機器環境

    win7家庭版32位操作系統+sqlserver2008 32位英文版

2.測試操作

    SELECT a.*
    FROM openrowset('MICROSOFT.JET.OLEDB.4.0','Excel 8.0;HDR=YES;DATABASE=e:\Book1.xls','select * from [sheet1$]') as a

3.報錯

    SQL Server blocked access to STATEMENT 'OpenRowset/OpenDatasource' of component 'Ad Hoc Distributed Queries' because this component is turned off as part of the    security configuration for this server. A system administrator can enable the use of 'Ad Hoc Distributed Queries' by using sp_configure. For more information about enabling 'Ad Hoc Distributed Queries', see "Surface Area Configuration" in SQL Server Books Online.

    查了別人的解決方案:

      執行如下語句:

                  exec sp_configure 'show advanced options',1  
                  reconfigure  
                  exec sp_configure 'Ad Hoc Distributed Queries',1  
                  reconfigure

                  SELECT a.*
    FROM openrowset('MICROSOFT.JET.OLEDB.4.0','Excel 8.0;HDR=YES;DATABASE=e:\Book1.xls','select * from [sheet1$]') as a

           問題解決

 

4.有位同行按照上面的說法,報瞭如下錯誤:

        OLE DB 訪問接口 'Microsoft.Jet.OLEDB.4.0' 配置爲在單線程單元模式下運行,所以該訪問接口無法用於分佈式查詢

      問了他的配置:win7 旗艦版64位+slqserver2008 英文的64位,office2010 32位

解決辦法:

  (注意中英文版本)

   http://social.msdn.microsoft.com/Forums/en/vbgeneral/thread/58c4c61e-fa86-4809-bf7d-21bacb055d3e/

   下載最新的驅動

   原因是:在64SQL Engine中已經不提供jet.oledb.4.0的驅動了
   解決方法:下載一個ACE.Oledb.12.0 for X64位的驅動,並把連接字符串Microsoft.jet.Oledb.4.0 更改爲 Microsoft.ACE.OLEDB.12.0

 

       安裝的時候:提示:

     

  

       乖乖的卸載32爲的office產品吧,誰讓你們技術這麼前衛的呢

       看了有位朋友總結的有關將不同版本的excel導入到sqlserver的文章,比較全面

       連接如下:

       http://hi.baidu.com/luck001221/item/74da5b3e8232aec4392ffad4

 

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