【问题标题】:Problem with update sql with excel用excel更新sql的问题
【发布时间】:2010-05-11 13:11:23
【问题描述】:

我对这个查询有疑问:

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语句?

【问题讨论】:

  • 是excel文件配置为链接服务器吗?
  • 有时我只是将选定的单元格复制到剪贴板并使用 sql server management studio 粘贴到打开的表中,但你必须有相同顺序的列

标签: sql-server-2005 excel


【解决方案1】:

这里详细介绍了几种可能的原因:Linked Server using Microsoft.Jet.OLEDB.4.0 problem

一个可能的原因是访问该链接服务器的任何人的 sql 服务登录的临时目录的文件系统权限:C:\Documents and Settings\(sql login name)\Local Settings\Temp

【讨论】:

    【解决方案2】:

    这是权限被拒绝错误。关注:

    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
    

    【讨论】:

      猜你喜欢
      • 2012-02-25
      • 2016-03-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-26
      • 2018-09-10
      相关资源
      最近更新 更多