2010-05-11 53 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