我对此查询有疑问:
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 链接服务器“(null)”的OLE DB提供程序“Microsoft.Jet.OLEDB.4.0”报告错误。提供商未提供有关错误的任何信息。 Msg 7303,Level 16,State 1,Line 1 无法为链接服务器“(null)”初始化OLE DB提供程序“Microsoft.Jet.OLEDB.4.0”的数据源对象。
此错误的来源是什么,以及如何修改SQL语句?
答案 0 :(得分:1)
这里有几个可能的原因:Linked Server using Microsoft.Jet.OLEDB.4.0 problem。
可能是因为sql服务登录的临时目录的文件系统权限是访问该链接服务器的人:C:\Documents and Settings\(sql login name)\Local Settings\Temp
答案 1 :(得分:0)
这是权限被拒绝错误。遵循:
How to import data from Excel to SQL Server
How to use Excel with SQL Server linked servers and distributed queries
注意如果您使用的是SQL Server 2005,请确保已使用SQL Server外围应用配置启用了“Ad Hoc Distributed Queries”选项。
sp_configure 'Ad Hoc Distributed Queries', 1