0

我有一个 Access 数据库,我需要更新给定表中 79000 个条目中的大约 1500 个。我收到了一个包含关键 ID 的 Excel 电子表格,我需要为其修改特定列。

它基本上是为 1500 个不同的客户重新分配不同的“设计师”。

我找到了一个名为 WinSQL Lite 的有用工具,它允许我对 Access 数据库运行 SQL,然后使用 excel 生成一个以空格分隔的文本文件,其中包含 UPDATE 语句列表以更改特定条目,如下所示:

UPDATE Leads SET Designer = 45 WHERE LeadNumber = 157776 
UPDATE Leads SET Designer = 45 WHERE LeadNumber = 157784 
UPDATE Leads SET Designer = 45 WHERE LeadNumber = 169561 

LeadNumber 在每种情况下都不同。

当然,SQL 并不是为了像这样运行单独的 UPDATE 查询而设计的,所以我尝试创建一个带有分号的 SQL 文件,以在每一行上描述不同的语句/查询,但这也不起作用。

现在,如果我单独复制并粘贴每个语句并运行它 - 它可以满足我的需要。我只需要一种方法来为 1500 LeadNumbers 执行此操作。我的调查显示了一种将语句嵌套到循环中的方法,其中列出了不同的 LeadNumber,但我无法从我提供的 ClientNumber 的电子表格中找到创建此列表的任何方法。

4

1 回答 1

1

您可以使用IN

UPDATE Leads
    SET Designer = 4
    WHERE LeadNumber IN (157776, 157784, 169561);

如果值已经在表中,那么您可以使用IN子查询:

UPDATE Leads
    SET Designer = 4
    WHERE LeadNumber IN (SELECT ln.LeadNumber FROM LeadNumber as ln);
于 2020-06-23T21:50:14.843 回答