组合多个更新查询

时间:2014-01-16 20:02:39

标签: sql ms-access

我正在尝试从Access中的多个辅助表更新主表。我希望在一个查询的范围内使用多个SQL语句来执行此操作。请参阅下面的多个语句。有没有办法写这个来更新主表中的两个字段,并使用语言连接同一查询中的两个语句?我希望我不必创建60个更新查询来执行此操作。

UPDATE [Master Output Table], [Input table] 
SET [Master Output Table].[Field 1] = [Input table]![Field 1]
WHERE ((([Input table]![Field 1])="AAAA") AND (([Master Output Table]![Field 1])="BBBB"));

UPDATE [Master Output Table], [Input table] 
SET [Master Output Table].[Field 1] = [Input table]![Field 1]
WHERE ((([Input table]![Field 1])="CCCC") AND (([Master Output Table]![Field 1])="DDDD"));

2 个答案:

答案 0 :(得分:1)

您还可以创建存储过程并只传递2个输入。然后你需要调用存储过程60次。您可以按如下方式存储过程

Create Procedure UpdateTable
(
      @field1 VARCHAR(200),
      @field2 VARCHAR(200)

)
As
Begin
   UPDATE [Master Output Table], [Input table] 
   SET [Master Output Table].[Field 1] = [Input table]![Field 1]
   WHERE ((([Input table]![Field 1])= @field1 ) AND (([Master Output Table]![Field 1])= @field2));

End

然后将其称为Execute UpdateTable 'AAA','BBB'

答案 1 :(得分:0)

由于其他一切看起来都是一样的,你应该能够或你的这里的条款:

UPDATE [Master Output Table], [Input table] 
SET [Master Output Table].[Field 1] = [Input table]![Field 1]
WHERE ((([Input table]![Field 1])="AAAA") AND (([Master Output Table]![Field 1])="BBBB"))
  OR
      ((([Input table]![Field 1])="CCCC") AND (([Master Output Table]![Field 1])="DDDD"))