【发布时间】: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