Прежде всего, A-number-one, соберите все скрипты базы данных в одном центральном месте. Лучше всего использовать какую-либо форму контроля версий или контроля версий, так как вы можете увидеть, кто что изменил, когда и (с помощью инструментов сравнения, если ничего больше) почему. Оставление кода, используемого для создания ваших баз данных, может привести к катастрофе.
Во-вторых, вам нужно запускать скрипты для вашей базы данных. Это означает, что вам нужен кто-то или что-то для их запуска, что означает выполнение кода. Если вы выполняете это выполнение кода из SQL Server, вы в конечном итоге будете использовать xp_cmdshell. Альтернатива? Используйте что-то еще, что может запускать сценарии для баз данных.
Мое текущее решение этой проблемы состоит в том, чтобы хранить сценарии в текстовых (.sql) файлах, сохранять файлы в системе управления версиями и тщательно отслеживать порядок их выполнения (например, CREATE ТАБЛИЦЫ запускаются перед ALTER TABLE, которые добавляют последующие столбцы). Затем у меня есть пакетный файл - да, я был здесь некоторое время, вы можете сделать это практически на любом языке - чтобы вызвать SQLCMD (мы работаем на SQL 2005, я использовал osql) и запустить эти сценарии в отношении необходимой базы данных.
Если вы не хотите пытаться «раскрутить свое», возможно, существуют более формальные инструменты для управления этим процессом.