Как включить данные в DacPac

в среде SQL Server Data Tools for Visual Studio можно создать проект Sql Server и импортировать структуру базы данных. Это работает очень хорошо.

также можно импортировать данные? Например, допустим, у меня есть таблица типов с несколькими типами. Я хотел бы иметь эти данные в проекте Sql Server, поэтому, когда я публикую его, он также публикует данные.

самое близкое, что я смог выяснить, - это использовать Обозреватель объектов Sql Server для создания сценарий для данных, а затем вручную добавьте этот сценарий в проект.

когда я увидел демонстрацию SQL Server Data Tools, то показал публикацию проекта, но затем с помощью копирования и вставки, чтобы получить данные в базу данных. Конечно, есть лучший способ.

изменить Годы спустя я, наконец, понял это: есть два типа экспорта: 1. DACPAK-который включает только структуру, 2. В BACBAK который включает и структуру данных.

вы можете создать либо из SSMS: 1. DACPAK: выберите базу данных, щелкните правой кнопкой мыши для задач - > извлечь приложение уровня данных. 2. Выберите база данных, щелкните правой кнопкой мыши для задач - > экспортировать приложение уровня данных.

2 ответов


Это не совсем из Visual Studio, как вы просили, но это может быть временное решение. Если ваша БД существует на dev-сервере, возможно, вы можете использовать SqlPackage.exe Export и Extract действия:

Для Экспорта

по умолчанию данные для всех таблиц будут включены в .bacpac-файл.

В SqlPackage.действие экспорта exe экспортирует живую базу данных из SQL Server или базы данных SQL Windows Azure в Пакет BACPAC (.файл bacpac). По умолчанию данные для всех таблиц будут включены в .bacpac-файл. При необходимости можно указать только подмножество таблиц для экспорта данных. Проверка действия экспорта обеспечивает совместимость базы данных SQL Windows Azure с полной целевой базой данных, даже если для экспорта указано подмножество таблиц.

sqlpackage.exe /action:Export /TargetFile:"test.bacpac" 
    /sourceDatabasename:test 
    /sourceservername:.\testserver

вы можете импортировать ваши https://msdn.microsoft.com/en-us/library/hh710052.aspx

Экстракт

делает DACPAC с данными таблицы пользователя

sqlpackage.exe /action:Extract /TargetFile:"test.dacpac" 
    /sourceDatabasename:test 
    /sourceservername:".\testserver"
    /p::ExtractAllTableData=true

если вы не хотите использовать SqlPackage.exe, этой статья старая, но у нее есть три обходных пути, которые могут работать:

1) повторно разверните то же самое .dacpac файл с помощью SSMS " обновление приложения уровня данных..."волшебник под Узел[сервер]/управление/приложение уровня данных/[имя приложения] в Обозревателе объектов SSMS. Мастер обновления представляет опции флажков для выполнения сценариев до и/или после развертывания в окне .файл dacpac. Включение параметров сценария до и после развертывания, а затем выполнение обновления приведет к ожидаемому результату.

2) вручную выполните файлы сценариев dacpac до и/или после развертывания T - SQL, используя окно запроса SSMS, SQLCMD.exe, или simliar. Этот требует, чтобы автор DACPAC отправлял сценарии до / после развертывания вместе с файлом DACPAC. Кроме того, сценарии до/после развертывания можно извлечь с помощью пакета Microsoft DacUnpack.exe utility или утилита ZIP-файла (после переименования расширения файла из .dacpac в .промелькнуть.)

3) Используйте MSBuild.exe (v4.0.30319.1 или выше) или Visual Studio 2010 Premium SP1 (или выше) для развертывания файла проекта "приложение уровня данных SQL Server". (Exampe: "msbuild / цель: развертывание DeploymentDemo.dbproj-файл").


годы спустя я, наконец, понял это: есть два типа экспорта: 1. DACPAK-который включает только структуру, 2. В BACPAK который включает и структуру данных.

вы можете создать либо из SSMS: 1. DACPAK: выберите базу данных, щелкните правой кнопкой мыши для задач - > извлечь приложение уровня данных. 2. Выберите база данных, щелкните правой кнопкой мыши для задач - > экспортировать приложение уровня данных.