将一个表的记录与另一个表进行比较并插入缺失的记录、删除不存在的记录并更新的 SQL 过程



我是SQL的初学者。

我有以下要求,请帮忙。数据库 - SQL 服务器。

我有 2 个表,所谓的 AA 和 BB,我想有一个过程将 BB 和 AA 与所有列进行比较(列名和列的数据类型相同),然后执行以下操作:

  1. 如果缺少 BB 中存在的记录,则在表 AA 中插入记录
  2. 如果 AA 上存在的记录不再在 BB 中,则需要使用文本"不再可用"更新"注释"列
  3. 对于 AA 上的现有记录,如果 BB 中任何列的值在与 BB 中相比发生了变化,那么它应该更新 AA 中的记录并输入"ABC 列更新"的"注释"列。

您的建议或如果给出工作程序,那么它将有很大帮助。

正如 Sean Lange 所说,您需要对 1,2,3 操作使用 MERGE 语句,请查看他评论中有关语法的 MS 文档。至于比较列名...您可以按如下方式查询 information_schema.columns 表:

select column_name
from information_schema.columns
where table_name = 'AA';

这会将每个列名作为单独的字符串,使用此表从两个表中收集列名,然后进行比较。

最新更新