当前位置: 首页 > 面试题库 >

从电子表格更新现有数据库值

慕容嘉荣
2023-03-14
问题内容

我有一个现有的MSSQL数据库,其中某些列中的值需要根据电子表格进行更新,该电子表格包含旧数据和新数据的映射。

电子表格是这样的:

       | OLD DATA      | NEW DATA      |
RECORD | A | B | C | D | A | B | C | D |
1      |OLD|OLD|OLD|OLD|NEW|NEW|NEW|NEW|
2      |OLD|OLD|OLD|OLD|NEW|NEW|NEW|NEW|

其中ABCD是与数据库有关的列名,而OLD / NEW与数据有关。

因此,对于每行(约2500行)

每列中与OLD匹配的数据库值需要更改为NEW

本质上是让Excel制定替换语句列表,尽管这似乎是解决问题的令人费解的方法!

有没有一种方法可以使电子表格的每一行都有SQL循环,请检查所有记录是否为a = old,b = old2,c = old3,d =
old4,然后将这些值替换为适当的a = new,b = new2, c = new3,d = new4?


问题答案:

您无需遍历电子表格中的每一行。您可以OPENROWSET像在链接的答案中那样使用命令将电子表格数据加载到某种临时表中。然后,您可以UPDATE对该表运行一个常规语句。

看起来像这样

UPDATE YourTable
SET YourTable.A = ExcelTable.NewDataA,
    YourTable.B = ExcelTable.NewDataB,
    YourTable.C = ExcelTable.NewDataC,
    YourTable.D = ExcelTable.NewDataD
FROM YourTable
INNER JOIN OPENROWSET('Microsoft.Jet.OLEDB.4.0',
         'Excel 8.0;Database=C:\foldername\spreadsheetname.xls;',
         'SELECT column1name, column2name, column3name, column4name
          FROM [worksheetname$]') AS ExcelTable
ON YourTable.ID = ExcelTable.ID
WHERE (YourTable.A = ExcelTable.OldDataA
  AND YourTable.B = ExcelTable.OldDataB
  AND YourTable.C = ExcelTable.OldDataC
  AND YourTable.D = ExcelTable.OldDataD)


 类似资料:
  • 我有一个共享的谷歌电子表格。工作表的某些列必须填充数据库服务器(PostgreSQL)中存在的数据(SQL查询)。 此外,必须计划自动完成数据加载(例如,每天1点)。 最后,我需要在电子表格中进行一些调整(例如,加载后,将日期时间放在工作表的名称中或发送确认电子邮件等) 实现这一目标的最佳和最简单的方法是什么?(我开始查看Google应用程序脚本和Google Sheets API,但不确定哪个更

  • 问题内容: 我有一个名为tblAccounts的表,其内容将来自excel电子表格。 我在Windows 8.1(x64)上使用MS SQL Server 2008(x64) 我尝试使用SQL Server导入/导出向导,但是没有选择现有表的选项,只有一个创建新表的选项。 我尝试使用其他方法,例如OPENROWSETS 但是给了我一个错误: 消息7308,级别16,状态1,行1 OLE DB提供程

  • 我想知道ehcache是否有办法检测数据库更新/插入(spring/java,hibernate web应用程序),并使用数据库中的当前(最新)数据刷新其缓存。如果没有,检测数据库更新的最佳方法是什么,以保持与缓存和数据库之间的数据同步?

  • 我想将数据库中的电子邮件更新为正确的电子邮件,例如abc.@gmial.com,为了做到这一点,我想从数据库中读取名字,但当我写下面的语法时,它会给我带来错误 我的语法使用hibernate session.createquery。 2021年1月12日8:00:32 PM org.hibernate.engine.jdbc.connections.internal.DriverManagerCo

  • 我有多个谷歌电子表格与预订数据,如预订号码,客户端名称,电子邮件,预订日期等。在所有工作表中,这些列的顺序并不相同。 我想在一个“主”电子表格中更新我所有“源”表中的所有数据。这意味着,一旦添加新行或更新现有行,数据将同步到主电子表格 实现这一目标的最佳方式是什么?Javascript或者是否存在一些现有的Google Sheets插件? 示例表1:快速船预订 示例表2:机场中转预订 主表 非常感

  • 问题内容: 我正在使用.NET Web窗体和数据库作为数据源来构建一个简单的站点。 问题是:我有一个正常工作的后台槽,可以创建,修改和删除新页面。 虽然我可以创建和删除,但是编辑功能不起作用。 我意识到问题可能出在查询中,因为代码对于其他功能运行正常。 这是查询: 我不太喜欢SQL,我做错什么了吗? 先感谢您 编辑N掳2。目前,该查询无法正常工作,基本上,某些内容和标题中带有撇号,并且当我更新该特