Сравнение текста процедур, представлений, функций и т.д. в двух базах
Коллеги из филиала спросили "как понять, какие процедуры изменились?"
К счастью, на том же сервере присутствует база, которую можно считать "эталоном".
В этом случае не нужно применять сторонние утилиты - достаточно одного запроса:
select
isnull(s1.name+'.'+o1.[name], s2.name+'.'+o2.[name]),
case
when o1.[object_id] isnullthen'только во второй'
when o2.[object_id] isnullthen'только в первой'
else'объект изменен'end
from Base1.sys.sql_modules m1
innerjoin Base1.sys.objects o1
on o1.[object_id] = m1.[object_id]
leftjoin Base1.sys.schemas s1
on s1.[schema_id] = o1.[schema_id]
fulljoin Base2.sys.sql_modules m2
innerjoin Base2.sys.objects o2
on o2.[object_id] = m2.[object_id]
leftjoin Base2.sys.schemas s2
on s2.[schema_id] = o2.[schema_id]
on s1.name+'.'+o1.[name] = s2.name+'.'+o2.[name]
whereisnull(m1.definition,'')<>isnull(m2.definition,'+')
Вместо Base1 и Base2 подставить требуемые базы данных, в том числе можно сравнивать определения объектов на linked серверах.