Создание исполняемого сценария SQL из проекта базы данных SQL Server.

У меня есть проект базы данных SQL Server, который может развернуть схему в базе данных, он создает .dacpac и применяет его к базе данных.

Я хотел бы использовать файл SQL, сгенерированный в классе автоматизированного тестирования, который создаст все таблицы и объекты в пустой базе данных.

Я не могу использовать сгенерированный файл SQL, поскольку он содержит нераспознанные команды, такие как

:setvar DatabaseName "MyDB"
:setvar DefaultFilePrefix "MyDB"

Как создать исполняемый сценарий SQL из развертывания проекта базы данных SQL Server?


person Bruno    schedule 16.02.2016    source источник
comment
Вы не могли запустить этот скрипт в режиме SQLCMD?   -  person xLiSPirit    schedule 16.02.2016
comment
@xLiSPirit возможно ли это на C #?   -  person Bruno    schedule 16.02.2016
comment
Может быть, это? stackoverflow.com/questions/26617247/   -  person xLiSPirit    schedule 16.02.2016
comment
Возможности программной работы сгенерированного сценария публикации SQL: C# через Process.Start для вызова SQLCMD.EXE -i filename.sql: msdn.microsoft.com/en-us/library/ C# через библиотеку с открытым исходным кодом для обработки операторов GO и SQLCMD -mode двоеточие-команды (в настоящее время обрабатывает файлы SQL, но их можно легко обновить, чтобы вместо этого принимать строку): github.com /rusanu/DbUtilSqlCmd PowerShell через Invoke-SqlCMD: sqlservercentral.com/ Форумы/Topic1502697-1351-1.aspx   -  person xLiSPirit    schedule 16.02.2016


Ответы (1)


Благодаря xLiSPirit и этому сообщению SO я в итоге заставил его работать с DacServices class и этот фрагмент кода:

    private void UpgradeDatabaseWithDacpac(string connectionString, string databaseName, string dacpacFileName)
    {
        DacPackage dacPackage = DacPackage.Load(dacpacFileName);
        DacServices dacServices = new DacServices(connectionString);
        dacServices.Deploy(dacPackage, databaseName, true);
    }  
person Bruno    schedule 16.02.2016