У меня есть 21 БД на одном сервере, которые «должны» иметь одну и ту же схему (на данный момент ограничивая схему только схемой таблицы), но это не так. В той среде, в которой я нахожусь, я не могу установить какие-либо инструменты/приложения в соответствии с правилами соответствия. Единственный способ, который я могу придумать, - это вывести схему всех 21 БД в Excel и сравнить, но это утомительно.
Может ли кто-нибудь помочь мне в разработке T-SQL, который может сравнить схему для всех 21 БД и выделить различия?
Вот столбцы, которые мне нужны: Table_Name, имя столбца, тип данных, максимальная длина, is_nullable, is_replicated, первичный ключ.
Следующий T-sql выводит эту информацию для меня. Мне нужно некоторое представление о том, как я могу сравнить эту информацию для 21 БД
SELECT a.name Table_Name, c.name 'Column Name',
t.Name 'Data type',
c.max_length 'Max Length',
c.is_nullable,a.is_replicated ,
ISNULL(i.is_primary_key, 0) 'Primary Key'
FROM Sys.tables a inner join sys.columns c
On A.object_id=C.object_id
INNER JOIN
sys.types t ON c.user_type_id = t.user_type_id
LEFT OUTER JOIN
sys.index_columns ic ON ic.object_id = c.object_id AND ic.column_id = c.column_id
LEFT OUTER JOIN
sys.indexes i ON ic.object_id = i.object_id AND ic.index_id = i.index_id
Order by 1,2
мне нужна отправная точка