2013-12-11 84 views
8

Я использую SSDT для Visual Studio 2012 here и используя его средство командной строки SQLPackage.exe для публикации файла .dacpac.Как публиковать файл DACPAC в проекте базы данных SQL Server через SQLPackage.exe из SSDT?

Я хочу опубликовать это до SQL Server database project. Я пытаюсь использовать параметр на этом guide, но не могу найти способы, как это сделать.

Как это сделать?

+1

Примеры использования sqlpackage.exe: http://stackoverflow.com/questions/8371879/deploy-sql-server-2012-db-project-via -command-line-sql-server-data-tools-ctp4/8376809 # 8376809 – Keith

ответ

9

Вы пытаетесь опубликовать в базе данных или создать проект базы данных из dacpac? Это две разные вещи.

  • Чтобы создать проект базы данных на основе dacpac, создайте новый проект базы данных SQL Server в Visual Studio. Затем щелкните правой кнопкой мыши проект в обозревателе решений и выберите «Импорт -> Приложение уровня данных (* .dacpac)» и выберите свой dacpac. Это преобразует содержимое dacpac в скрипты в проекте, и если вы выберете «Импортировать настройки базы данных», параметры базы данных будут установлены на основе настроек в dacpac. К сожалению, нет способа сделать это с помощью инструмента командной строки, о котором я знаю.

  • Чтобы использовать SqlPackage.exe для публикации в базе данных, в руководстве, к которому вы привязались, есть все варианты. Простой командой будет «sqlpackage/a: publish /sf:db1.dacpac/tsn: localhost/tdn: db1» для публикации dacpac «db1» в базе данных «localhost \ db1». Для других вариантов публикации введите «sqlpackage/a: publish /?» для получения списка применимых действий в командной строке.

+0

Я хочу обновить схему внешней базы данных до проекта базы данных –

1

Использование Powershell, которое можно развернуть на стандартные SQL-запросы или на Azure SQL-экземпляр. Строка соединения и другие свойства будут подаваться от PublishProfile

$PublishPath = "Path for the log" 
$dacpac = "dbname.dacpac" 
$publishProfile = "dbname.xml" # Publish profile xml for Publishing the database project 

     # Generate Deploy Report 
     $DeployReport = ".\sqlpackage.exe /Action:DeployReport /Sourcefile:$dacpac /pr:'$publishProfile' /outputpath:$PublishPath" 

     Invoke-Expression $DeployReport 

     # Generate Script Report 
     $GenerateScript = ".\sqlpackage.exe /Action:Script /Sourcefile:$dacpac /pr:'$publishProfile' /outputpath:$PublishPath" 

     Invoke-Expression $GenerateScript 

     # Database Publish 
     $publish = ".\sqlpackage.exe /Action:Publish /Sourcefile:$dacpac /pr:'$publishProfile'" 

     Invoke-Expression $publish | Out-File $PublishPath