我是SQL的初学者。
我有以下要求,请帮忙。数据库 - SQL 服务器。
我有 2 个表,所谓的 AA 和 BB,我想有一个过程将 BB 和 AA 与所有列进行比较(列名和列的数据类型相同),然后执行以下操作:
- 如果缺少 BB 中存在的记录,则在表 AA 中插入记录
- 如果 AA 上存在的记录不再在 BB 中,则需要使用文本"不再可用"更新"注释"列
- 对于 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';
这会将每个列名作为单独的字符串,使用此表从两个表中收集列名,然后进行比较。