【问题标题】:Updating a table based on an Excel file without excel functionality?基于没有 Excel 功能的 Excel 文件更新表格?
【发布时间】:2016-04-25 22:33:11
【问题描述】:

好的,所以我基本上有一个巨大的 Excel 列表,其中包含两列,ID 和 Value。我想在我的 SQL 中更新一个 Employee 表,并在该表中设置一个等于 excel 文件中的值的列,其中 excel 文件的 ID 等于 Employee 表的 ID。

我查看了其他类似的问题,他们使用 OpenRowSet 和其他 SQL excel 功能,但不幸的是,我们的 DBA 似乎没有安装任何这些功能。我可以做些什么来替代更新该表?

至于我所尝试的,我创建了两个 XML 列表并将数据库的每一列分隔到一个临时表中,所以现在我有两个临时表,一个用于每个 excel 列,但现在我正在阅读结合两个没有通用标识符的表是非常糟糕的做法,所以我回到了第一格。

【问题讨论】:

  • 我理解正确吗?您不允许向/在 SQL 服务器上发送/执行 T-SQL 命令吗?或者您实际上是否允许直接查询 SQL 服务器,但在 VBE 中您找不到对Microsoft ActiveX Data Objects 2.X or 6.0 Libraray 的引用?或者是别的什么?
  • 我找不到参考是问题所在。
  • 如果您找不到 ADO 库(通常随 Windows 提供),那么您可以从以下源免费安装它:support.microsoft.com/en-us/kb/168335 但在此之前。尝试运行以下代码行,看看是否收到错误消息:Dim conn1 As Object: Set conn1 = CreateObject("ADODB.Connection")。如果运行没有问题,那么您肯定已经安装了 ADO 并且可以使用它。
  • 对不起,我对这些数据库中的一些东西不是很了解。我尝试在我的计算机(Windows 10)上安装它,但安装程序没有运行。看起来它适用于较旧的操作系统。
  • 您是否安装了 MS Office(包括 MS Access)?如果是这样,ADO 也会自动附带 MS Access:allenbrowne.com/ser-38.html 另外,您是否尝试过运行上述代码行?基本问题是:如果您不能使用 ADO 或 DAO 向 SQL 服务器发送查询,那么您无法将表发送到服务器(除非您的管理员在 SQL 服务器上运行 SSIS 并将包写入阅读您的文件)。然而,我严重怀疑它们都不可用!

标签: sql sql-server


【解决方案1】:

您可以使用 SSIS 轻松做到这一点。您可以使用 Excel 源、查找转换或合并连接和 OLE DB 目标。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-03-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多