У меня есть 4 базы данных со схожими схемами, и я пытаюсь создать запрос для возврата только таблицы, пары столбцов, которые существуют ТОЛЬКО в базе данных 1 и не существуют в базе данных 2, 3 или 4.
В настоящее время я могу вернуть симметричную разницу между базой данных 1 и 2 с помощью следующего запроса ...
select table_name, column_name from (
select table_name, column_name from [Database1].information_schema.columns
union all
select table_name, column_name from [Database2].information_schema.columns) as tmp
group by table_name, column_name having count(*) = 1
Однако, пытаясь изолировать только эти столбцы в базе данных 1 и делая то же самое для всех 4 баз данных, все усложняется. Какое самое чистое решение для этого запроса?