2010-05-11 49 views
1

更新SQL我有這個查詢的一個問題:問題與Excel的

UPDATE Provinces 
SET Provinces.DefaultName=T2.Defaultname 
FROM Provinces 
INNER JOIN 
    OPENROWSET('Microsoft.Jet.OLEDB.4.0', 
       'Excel 8.0;Database=C:\provinces.xlsx;HDR=YES', 
       'SELECT Code, Defaultname FROM [Arkusz1$]') T2 
    On Provinces.Code = t2.Code 
WHERE Provinces.Code = T2.Code 

我得到錯誤:

Msg 7399, Level 16, State 1, Line 1 The OLE DB provider "Microsoft.Jet.OLEDB.4.0" for linked server "(null)" reported an error. The provider did not give any information about the error. Msg 7303, Level 16, State 1, Line 1 Cannot initialize the data source object of OLE DB provider "Microsoft.Jet.OLEDB.4.0" for linked server "(null)".

這是什麼錯誤的根源,以及如何修改SQL聲明?

+0

是否將excel文件配置爲鏈接服務器? – volody 2010-05-11 14:34:54

+0

不,這是一個簡單的xlsx – user278618 2010-05-11 15:32:29

+0

有時我只是做一個選定的單元格複製到剪貼板並使用sql server management studio粘貼到打開的表中,但是您必須具有相同順序的列 – volody 2010-05-11 18:02:59

回答

1

有幾種可能的原因在這裏詳述:Linked Server using Microsoft.Jet.OLEDB.4.0 problem

一個可能是原因是對於誰正在訪問該鏈接服務器的SQL服務登錄的臨時目錄的文件系統權限:C:\Documents and Settings\(sql login name)\Local Settings\Temp