我想在具有相同列结构的2个表之间对MS Access中的几百个字段进行质量比较 . 如果列值之间存在任何差异,则将table1中的行替换为table2中的新行 . 如果table2不再保存table1中存在的行,则应从table1中删除该行 . 对table1的所有更改都应记录在tableLOGS中 .
举个例子:
____table1___ _____table2____ __________tableLOGS__________
| pid | A | B | | pid | A | B | | id | pid | A | B | action |
| 1 | 0 | 0 | | 1 | 0 | 0 | | 1 | 1 | 0 | 0 | add |
| 2 | 0 | 0 | | 2 | 0 | 1 | | 2 | 2 | 0 | 0 | add |
| 3 | 0 | 0 |
运行所需的SQL查询后,结果应为:
____table1___ _____table2____ __________tableLOGS__________
| pid | A | B | | pid | A | B | | id | pid | A | B | action |
| 1 | 0 | 0 | | 1 | 0 | 0 | | 1 | 1 | 0 | 0 | add |
| 2 | 0 | 1 | | 2 | 0 | 1 | | 2 | 2 | 0 | 0 | add |
| 3 | 2 | 0 | 1 | edit |
| 4 | 3 | 0 | 0 | delete |
我希望这必须分解为2个单独的查询?
批量比较行和更新更改将更改记录到tableLOGS这似乎是一个相当常见的任务,所以MS Access可能有一种简单的方法来实现这一点?感谢您的帮助! :)
附:我也愿意删除table1中与table2不匹配的行,并从table2中删除INSERT INTO table1 .
1 回答
这是从内存我没有实际运行这个,所以它可能需要一些修复 . 我很抱歉
从记录更新开始
然后使用更新的值更新table1
记录表1中的缺失记录
从table1中删除缺少的行
您还可以在table1上设置触发器以更新表日志,但这不是最佳实践 .
希望有所帮助,就像我说我还没有运行它 .