Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
方法通过SQL在Access数据库上批运行UPDATE语句_Sql_Ms Access_Winsql - Fatal编程技术网

方法通过SQL在Access数据库上批运行UPDATE语句

方法通过SQL在Access数据库上批运行UPDATE语句,sql,ms-access,winsql,Sql,Ms Access,Winsql,我有一个Access数据库,需要更新给定表中79000个条目中的1500个。我收到了一份Excel电子表格,上面有一个键ID,我需要为它修改一个特定的列 它基本上是给1500个不同的客户重新分配一个不同的“设计师” 我发现了一个名为WinSQL Lite的有用工具,它允许我对Access数据库运行SQL,然后使用excel生成一个以空格分隔的文本文件,其中包含一个更新语句列表,以更改特定条目,如下所示: UPDATE Leads SET Designer = 45 WHERE LeadNumbe

我有一个Access数据库,需要更新给定表中79000个条目中的1500个。我收到了一份Excel电子表格,上面有一个键ID,我需要为它修改一个特定的列

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

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

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并不是为了运行像这样的单独更新查询而设计的,所以我尝试创建一个带有分号的SQL文件来在每一行上描述不同的语句/查询,但这也不起作用


现在,如果我分别复制和粘贴每个语句并运行它,它就完成了我所需要的。我只需要一个方法来为1500个LeadNumber执行此操作。我的调查显示了一种将语句嵌套到循环中的方法,其中列出了不同的LeadNumber,但我无法从提供的ClientNumber的电子表格中找到创建此列表的方法。

您可以使用
中的

UPDATE Leads
    SET Designer = 4
    WHERE LeadNumber IN (157776, 157784, 169561);
如果值已在表中,则可以在
中使用子查询:

UPDATE Leads
    SET Designer = 4
    WHERE LeadNumber IN (SELECT ln.LeadNumber FROM LeadNumber as ln);

SQL可以运行多个
update
查询。什么意思?它不是为这个而设计的?“当然SQL不是为运行像这样的单独更新查询而设计的”--你为什么这么说?我假设你找到的工具不能很好地处理多个批处理。您可能会更成功地将excel数据导入access表,并在access内部工作以更新数据;每个更新代码的结尾用分号表示。在ms access中,您需要使用;每个更新代码的结尾用分号表示。谢谢,我今天就试试这个。Lead并不是在一个表格中,而是一个电子表格,但我想我没有理由不能创建一个带有单个字段的表格,然后将它们粘贴进去,对吗?@OzPass。您可以将值加载到表中,也可以在
子句中使用一个巨大的