【问题标题】:Error message when importing data from excel to SQL Server将数据从 excel 导入 SQL Server 时出现错误消息
【发布时间】:2016-04-07 15:57:35
【问题描述】:

我正在尝试在不使用向导的情况下将数据从 Excel 导入 SQL,因为这是一个每周都需要执行的过程,因此自动化是必须的。但是,当我运行以下脚本时,我收到一条错误消息:

脚本:

IF OBJECT_ID('TEST Weekly Sales D') IS NOT NULL
DROP TABLE [TEST Weekly Sales D]

SELECT *
INTO [TEST Weekly Sales D]
FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0',
  'Excel 12.0;Database=C:\.....\Weekly Sales D.xlsx',
   ['SHEET1$'])
GO

错误信息:

用于链接服务器“(null)”的 OLE DB 提供程序“Microsoft.ACE.OLEDB.12.0” 返回消息“未指定的错误”。消息 7303,级别 16,状态 1, 第 5 行无法初始化 OLE DB 提供程序的数据源对象 链接服务器“(null)”的“Microsoft.ACE.OLEDB.12.0”。

服务器上没有excel,但有人告诉我这不是问题。我安装了 ACE OLEDB 驱动程序,但它似乎间歇性地工作。

谁能指出我哪里出错了?

【问题讨论】:

    标签: sql-server oledb


    【解决方案1】:

    首先检查 ACE 提供程序是否出现在 Management Studio 中的 ServerObjects>Linked Servers>Providers 树下。

    然后运行以下命令(单独运行它们以注意是否出现“从0更改为1”信息)。

    启用OPENROWSET:

    sp_configure 'show advanced options'
    GO
    RECONFIGURE
    GO
    
    sp_configure 'Ad Hoc Distributed Queries', 1
    GO
    RECONFIGURE
    GO
    

    要配置 ACE 驱动程序:

    EXEC sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0', N'AllowInProcess', 1
    GO
    EXEC sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0', N'DynamicParameters', 1
    GO
    

    另外,您安装了哪个版本的驱动程序,以及您运行的是哪个版本的 SQL Server? x86 还是 64?

    问候

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-05
      • 1970-01-01
      • 1970-01-01
      • 2017-10-30
      • 1970-01-01
      • 2015-01-02
      相关资源
      最近更新 更多