Вы можете сделать это программно, посмотрев в словаре данных (sys.objects, sys.columns и т.д.) обеих баз данных и их сравнение. Тем не менее, есть также такие инструменты, как Redgate SQL Compare Pro, которые делают это за вас. Я уже несколько раз указывал это как часть инструментария QA на системах хранилищ данных, в том числе тот, над которым я сейчас работаю. На моем текущем концерте это не было проблемой, поскольку DBA здесь уже использовали его.
Основная методика использования этих инструментов - поддерживать ссылочный скрипт, который создает базу данных и сохраняет ее в управлении версиями. Запустите сценарий в базу данных царапин и сравните его с вашей целью, чтобы увидеть различия. Он также будет генерировать патч-скрипты, если вы так наклонены.
Насколько я знаю, нет ничего свободного, что бы это сделать, если вы не хотите писать свои собственные. Redgate достаточно дешев, чтобы он мог быть бесплатным. Даже в качестве инструмента обеспечения качества, чтобы доказать, что производственная БД не находится в конфигурации, она должна была бы сэкономить вам покупную цену после одного инцидента.
Я изменил это и добавил тэг 'redgate' из-за преобладания ответов, предлагающих его. – ConcernedOfTunbridgeWells 2008-10-03 14:51:08