Гуру SQL-
Наша архитектура состоит из нескольких баз данных клиентов к общей кодовой базе. Когда мы развертываем изменения базы данных, скрипты должны быть запущены agianst каждая база данных.
Из-за проблем развертывания, там прибыли времена, когда наши хранимые процедуры стали из синхронизации друг с другом. Я хотел бы создать сценарий для возврата этих mimatched процедур, чтобы гарантировать, чтобы у нас были sync'd копии наших баз данных после развертывания.
Действительно ли возможно сравнить две или больше базы данных, при наличии сценария смотрят на все процедуры между двумя базами данных и возвращают несоответствия?
Что-то к эффекту:
DATABASE_1 | DATABASE_2 | MISMATCHED_PROCEDURE | DATABASE_1_MODIFY_DATE | DATABASE_2_MODIFY_DATE
Customer_1 | Customer_2 | sp_get_names | 1/1/2010 | 1/2/2010
Customer_1 | Customer_2 | sp_add_person | 1/5/2010 | 1/6/2010
В качестве награды было бы возможно иметь сценарий, автоматически синхронизируют базы данных путем применения новейшего сценария к устаревшему сценарию?
Очень Спасибо!
Есть много инструментов для этого. Один из лучших - Red-Gate SQL SQL. Еще одна очень хорошая альтернатива - использовать Visual Studio Professional Professional для управления схемой базы данных. Среди прочего, это будет очень хорошая схема сравнивает.
Если у вас нет SQL Sefer или Visual Studio Team System для архитекторов DB (Data Dude) ... Играть с этим ... SQL 2005 и UP
select t1.name,t1.modify_date,t2.modify_date
from Database1.sys.procedures t1
join Database2.sys.procedures t2 on t1.name = t2.name
and object_definition(t1.object_id) <> object_definition(t2.object_id)
Упрощенный ответ, но падение и создание сценария по всем процедурам было бы очень легко и эффективно.
Это косвенно связано, но я написал кое-что, что предоставляет статистику процентного соответствия между текстом двух хранимых процедур: http://www.sqlservercentral.com/scripts/T-SQL/65787/