用excel更新sql的问题
这个查询有问题:
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
我收到错误:
消息7399,级别16,状态1,行1链接服务器“(null)”OLE DB提供程序“Microsoft.Jet.OLEDB.4.0”报告错误。 提供者没有给出关于错误的任何信息。 消息7303,级别16,状态1,行1无法初始化链接服务器“(null)”的OLE DB提供程序“Microsoft.Jet.OLEDB.4.0”的数据源对象。
这个错误的来源是什么,如何修改SQL语句?
有几个可能的原因在这里详细介绍: 链接服务器使用Microsoft.Jet.OLEDB.4.0问题 。
一个可能的原因是访问该链接服务器的人员的sql服务login名的临时目录的文件系统权限: C:\Documents and Settings\(sql login name)\Local Settings\Temp
这是权限被拒绝的错误。 跟随:
如何将数据从Excel导入到SQL Server
如何使用SQL Server链接服务器和分布式查询使用Excel
注意如果您正在使用SQL Server 2005,请确保您已通过使用SQL Server表面区域configuration启用了“Ad Hoc分布式查询”选项。
sp_configure 'Ad Hoc Distributed Queries', 1