Как бы странно это не звучало, Visual Studio не создает файл SQL для развертывания базы данных при выполнении сборки.
Вместо этого это происходит во время развертывания. Причина этого заключается в том, что Visual Studio вносит изменения в базу данных, в которую вы развертываете: чтобы изменить базу данных, она должна сначала сравнить модель проекта (как определено в файлах, содержащихся в .dbproj) с существующей схемы базы данных, чтобы определить, какие изменения были внесены с момента последнего развертывания базы данных.
Затем у вас есть возможность вручную выполнить сценарий SQL, созданный с помощью утилиты командной строки SQLCMD (или через SSMS в режиме SQLCMD), или же вы можете настроить свой проект базы данных Visual Studio для выполнения сценария, если указать следующее Развернуть действие в настройках проекта:
Generate a deploy script (.sql) and deploy to the database
Обратите внимание, что вам нужно будет указать строку подключения в настройках проекта, чтобы VS знал, куда его развернуть.
Когда вы переходите на этап, на котором вы хотите выполнить развертывание в среде QA или PROD, у вас есть несколько вариантов:
- Развертывание непосредственно в Visual Studio. В дополнение к стандартным конфигурациям Debug и Release, которые вы получаете при первом создании вашего проекта базы данных, вы также можете создавать свои собственные конфигурации, которые вы могли бы использовать для развертывания в своем. Среды QA и PROD (т.е. потенциально с другой строкой соединения / именем целевой базы данных).
- Развертывание с сервера сборки. Установите Visual Studio на отдельном компьютере и вызовите MsBuild для вашего файла .dbproj / .sln, указав цели Build и Deploy с соответствующими свойствами соединения.
Даг Рэтбоун написал отличный пост в блоге на эту тему, если вы хотите узнать больше:
http://www.diaryofaninja.com/blog/2011/06/23/compare-amp-update-database-schemas-right-within-your-ide--part-2-automation-with-teamcity