Поделиться через


Добавление существующих файлов в проект SQL

Область применения: SQL Server База данных SQL Azure Управляемый экземпляр SQL Azure

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

Импорт из .dacpac файла

.dacpac Файл является скомпилированной моделью базы данных и требует определенного средства для чтения и применения файла. .dacpac Файл можно создать в виде артефакта сборки проекта SQL или из существующей базы данных, и вы можете предоставить один из них без доступа к источнику. Помимо множества инструментов, которые могут применяться .dacpac к базе данных, SQL Server Data Tools (SSDT) в Visual Studio может импортировать содержимое .dacpac файла непосредственно в проект. Возможность импорта схемы из базы данных или файла DACPAC доступна только в том случае, если в проекте еще не определены никакие объекты схемы.

Снимок экрана: меню импорта проекта SQL в Visual Studio SSDT.

При импорте определения объектов скриптируются в файлы проекта с использованием организационных значений SSDT по умолчанию для новых объектов: новые файлы для объектов верхнего уровня, иерархические дочерние элементы, определенные в том же файле, что и родительский, табличный или столбец ограничения, определенные в соответствии с возможными параметрами. Чтобы обеспечить более целенаправленную видимость и управление для каждого объекта, воспользуйтесь не импортом, а функцией «Сравнение схемы». Если источник импорта содержит определения переменных Pre- и Post-Deployment, RefactorLogs или SQLCMD, они импортируются в проект. Если проект уже содержит один из этих артефактов, импортированные файлы добавляются в папку "Импорт" в проекте.

Если Visual Studio и SQL Server Data Tools недоступны, можно либо:

Импорт из скриптов SQL

Скрипты T-SQL можно импортировать в проект SQL двумя способами: добавив файлы скриптов в каталог проекта или обрабатывая содержимое скриптов в Visual Studio. Выбор метода зависит от типа проекта и требуемого уровня управления процессом импорта. В обоих случаях синтаксис файлов скрипта должен быть допустимым.

Добавление файлов в проект

С помощью проектов SQL в стиле ПАКЕТА SDK можно добавить существующие скрипты SQL в проект, поместив их в каталог проекта, так как Microsoft.Build.Sql автоматически включает все *.sql файлы в проект. Если вы используете проект, отличный от пакета SDK, необходимо импортировать существующие скрипты SQL в проект, используя обработку скриптов в Visual Studio. Файлы *.sql , автоматически включенные в проект, включаются в сборку модели базы данных как объекты SQL.

Файл, добавленный в папку проекта, содержащую повторяющееся определение объекта в объект, который уже присутствует в проекте, приводит к сбою сборки проекта. Необходимо вручную устранить конфликт, удалив повторяющийся объект или переименовав один из объектов.

Чтобы добавить файл в проект в качестве скрипта предварительного или после развертывания, помимо добавления файла в каталог проекта, необходимо также включить файл в файл проекта. Например, чтобы добавить файл с именем Pre-DeploymentScript.sql скрипта предварительного развертывания, добавьте в файл проекта следующее:

<ItemGroup>
  <PreDeploy Include="Pre-DeploymentScript.sql" />
</ItemGroup>

Дополнительные сведения о сценариях предварительного и последующего развертывания см. в документации по проектам SQL.

Обработка содержимого файлов

Sql Server Data Tools (SSDT) в Visual Studio также имеет возможность обрабатывать содержимое скриптов SQL при добавлении их в исходный проект стиля. Во время этой обработки, если скрипт содержит объект, уже определенный в проекте, определение объекта обновляется, чтобы соответствовать скрипту. Если скрипт содержит объект, который еще не определен в проекте, для объекта создается новый файл.

Существуют известные проблемы, из-за которых обработка скрипта может привести к повторяющимся ограничениям и операторам ключа шифрования. Если вы столкнулись с этими проблемами, используйте окно вывода сборки, чтобы определить источник дубликатов и вручную удалить их из проекта.

Процесс импорта из скрипта не включает скрипты предварительного и после развертывания, переменные SQLCMD или файлы RefactorLog. Эти и другие неподдерживаемые конструкции, обнаруженные при импорте, помещаются в файл ScriptsIgnoredOnImport.sql в папку Scripts в проекте.