Руководство. Начало работы с существующей базы данных

Применимо к:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceSQL в базе данных Microsoft Fabric

Проекты SQL содержат декларативные (CREATE инструкции) файлы для всех объектов в базе данных, таких как таблицы, представления и хранимые процедуры. Эти файлы можно использовать для создания новых баз данных, обновления существующих баз данных или отслеживания базы данных в системе управления версиями. Часто вы начинаете с проекта SQL, если у вас есть существующая база данных и хотите создать объекты в проекте SQL, которые соответствуют базе данных с минимальными усилиями.

Некоторые средства проекта SQL включают один шаг для создания нового проекта SQL из существующей базы данных. Другие средства требуют нескольких шагов для создания нового проекта SQL, а затем импорта объектов из существующей базы данных. Кроме инструкций Visual Studio (SQL Server Data Tools), в этом руководстве основное внимание уделяется проектам SQL в стиле ПАКЕТА SDK.

С вариантом 1 в этом руководстве вы:

  • Шаг 1. Создание проекта SQL из существующей базы данных
  • Шаг 2. Создание проекта SQL

С вариантом 2 в этом руководстве вы:

  • Шаг 1. Создание пустого проекта SQL
  • Шаг 2. Импорт объектов из существующей базы данных
  • Шаг 3. Создание проекта SQL

Prerequisites

# install SqlPackage CLI
dotnet tool install -g Microsoft.SqlPackage

# install Microsoft.Build.Sql.Templates
dotnet new install Microsoft.Build.Sql.Templates

Note

Чтобы завершить руководство, необходимо получить доступ к экземпляру Azure SQL или SQL Server. Вы можете разрабатывать локально бесплатно с SQL Server версия для разработчиков на Windows или в контейнерах.

Вариант 1. Создание проекта SQL из существующей базы данных

Шаг 1. Создание проекта SQL из существующей базы данных

В Visual Studio SQL Server Object Explorer щелкните правой кнопкой мыши базу данных, из которой вы хотите создать project и выберите Create New Project... .

Screenshot из диалогового окна импорта базы данных в Visual Studio.

В диалоговом окне Create New Project введите имя project. Имя проекта не обязательно совпадает с именем базы данных. Проверьте и измените расположение проекта по мере необходимости. Параметры импорта по умолчанию импортируют объекты в папки по схеме, а затем тип объекта. Параметры импорта можно изменить, чтобы изменить структуру папок или включить разрешения в импортируемые объекты. Запустите импорт.

В диалоговом окне "Импорт базы данных " отображается ход импорта в виде сообщений. После завершения импорта можно увидеть импортированные объекты в Solution Explorer. Процесс сохраняет журналы в файле в каталоге проекта под Import Schema Logs. Нажмите Готово.

Вариант 1 недоступен для проектов SQL SDK-стиля в Visual Studio. Вместо этого используйте вариант 2 .

В представлении обозревателя объектов базы данных в Visual Studio Code выберите базу данных, из которой вы хотите создать проект. Щелкните базу данных правой кнопкой мыши и выберите Create Project из базы данных.

Снимок экрана диалогового окна

В Visual Studio Code диалоговое окно Создание проекта из базы данных требует указания имени и расположения проекта. Параметры импорта по умолчанию импортируют объекты в папки по схеме, а затем тип объекта. Вы можете выбрать другую структуру папок или включить разрешения в импортируемые объекты перед нажатием кнопки "Создать".

Откройте представление "Проекты базы данных", чтобы просмотреть новый проект и импортированные определения объектов.

Вариант 1 недоступен для SQL Server Management Studio. Вместо этого используйте вариант 2 .

Параметр 1 недоступен для командной строки. Вместо этого используйте вариант 2 .

Шаг 2. Создание проекта SQL

Процесс сборки проверяет связи между объектами и синтаксисом для целевой платформы, указанной в файле проекта. Результатом процесса сборки является файл .dacpac, который можно использовать для развертывания проекта на целевой базе данных. Этот файл содержит скомпилированную модель схемы базы данных.

В Solution Explorer щелкните правой кнопкой мыши узел проекта и выберите Build.

Окно вывода автоматически открывается для отображения процесса сборки. При возникновении ошибок или предупреждений они отображаются в окне вывода. В успешной сборке создается артефакт сборки (.dacpac файл), а его расположение включается в выходные данные сборки (по умолчанию bin\Debug\projectname.dacpac).

Вариант 1 недоступен для проектов SQL SDK-стиля в Visual Studio. Вместо этого используйте вариант 2 .

В представлении Database Projects в Visual Studio Code щелкните правой кнопкой мыши узел проекта и выберите Build.

Окно вывода автоматически открывается для отображения процесса сборки. При возникновении ошибок или предупреждений они отображаются в окне вывода. В успешной сборке создается артефакт сборки (.dacpac файл), а его расположение включается в выходные данные сборки (по умолчанию bin/Debug/projectname.dacpac).

Вариант 1 недоступен для SQL Server Management Studio. Вместо этого используйте вариант 2 .

Параметр 1 недоступен для командной строки. Вместо этого используйте вариант 2 .

Вариант 2. Создание пустого проекта SQL и импорт объектов из существующей базы данных

Кроме того, можно разделить шаги по созданию проекта и импорту объектов.

Шаг 1. Создание пустого проекта SQL

Запустите проект, создав проект базы данных SQL перед импортом объектов в него.

Выберите File, New, а затем Project.

В диалоговом окне New Project используйте термин SQL Server в поле поиска. Самый верхний результат — SQL Server Database Project.

Снимок экрана: диалоговое окно

Нажмите Далее, чтобы перейти к следующему шагу. Введите имя проекта, которое не обязательно соответствует имени базы данных. Проверьте и измените расположение проекта по мере необходимости.

Выберите Создать, чтобы создать проект. Откроется пустой проект и отображается в Solution Explorer для редактирования.

Выберите File, New, а затем Project.

В диалоговом окне New Project используйте термин SQL Server в поле поиска. Основной результат — проект базы данных SQL Server, в стиле SDK (предварительная версия).

Снимок экрана: диалоговое окно

Нажмите Далее, чтобы перейти к следующему шагу. Введите имя проекта, которое не обязательно соответствует имени базы данных. Проверьте и измените расположение проекта по мере необходимости.

Выберите Создать, чтобы создать проект. Откроется пустой проект и отображается в Solution Explorer для редактирования.

В представлении Visual Studio Code Database Projects нажмите кнопку New Project.

Снимок экрана нового виджета.

Первая подсказка определяет, какой шаблон проекта следует использовать, главным образом в зависимости от того, целевая платформа — SQL Server или Azure SQL. Если появится запрос на выбор определенной версии SQL, выберите версию, соответствующую целевой базе данных. Если вы не знаете целевую версию базы данных, выберите последнюю версию, так как значение можно изменить позже.

Введите имя проекта в появившемся текстовом вводе, которое не обязательно совпадает с именем базы данных.

В появившемся диалоговом окне выбора папки выберите каталог для папки, .sqlproj файла и другого содержимого проекта.

При появлении запроса на создание проекта в стиле SDK выберите Да.

По завершении пустой проект откроется и отображается в представлении проектов баз данных для редактирования.

Выберите File, New, а затем Project.

В диалоговом окне New Project выберите SQL Database Project.

Снимок экрана: диалоговое окно

Нажмите Далее, чтобы перейти к следующему шагу. Введите имя проекта, которое не обязательно соответствует имени базы данных. Проверьте и измените расположение проекта по мере необходимости.

Выберите Создать, чтобы создать проект. Откроется пустой проект и отображается в Solution Explorer для редактирования.

При установке шаблонов .NET для проектов Microsoft.Build.Sql вы можете создать новый проект базы данных SQL через командную строку. Параметр -n указывает имя проекта, а -tp параметр указывает целевую платформу проекта.

Используйте параметр -h, чтобы просмотреть все доступные варианты.

# create a new SQL database project
dotnet new sqlproj -n MyDatabaseProject

Шаг 2. Импорт объектов из существующей базы данных

В Solution Explorer щелкните правой кнопкой мыши узел проекта и выберите Import -> Database... . Если этот параметр отключен, в проекте базы данных могут быть созданы объекты. Объекты можно удалить или создать новый проект.

В диалоговом окне импорта базы данных выберите подключение к базе данных, из которой вы хотите импортировать объекты. Если вы подключены к базе данных в SQL Server Object Explorer, она отображается в списке history.

Screenshot из диалогового окна импорта базы данных в Visual Studio.

Параметры импорта по умолчанию импортируют объекты в папки по схеме, а затем тип объекта. Параметры импорта можно изменить, чтобы изменить структуру папок или включить разрешения в импортируемые объекты. Запустите импорт.

Пока импорт продолжается, ход выполнения отображается в виде сообщений в диалоговом окне импорта базы данных. После завершения импорта импортированные объекты отображаются в Solution Explorer и журналы хранятся в файле в каталоге проекта в Import Schema Logs. Нажмите кнопку "Готово ", чтобы вернуться в проект.

Используйте интерфейс командной строки SqlPackage для импорта объектов из существующей базы данных в новый проект базы данных SQL, созданный в Visual Studio на шаге 1. Следующая команда SqlPackage импортирует схему базы данных в папку, которая организована по вложенным папкам, сортированным по схемам и типам объектов.

sqlpackage /a:Extract /ssn:localhost /sdn:MyDatabase /tf:MyDatabaseProject /p:ExtractTarget=SchemaObjectType

Когда эти папки помещаются в папку проекта базы данных SQL в стиле ПАКЕТА SDK, они автоматически включаются в проект без необходимости импортировать их или изменить файл проекта SQL.

В расширении проектов баз данных SQL в Visual Studio Code откройте представление Database Projects. Щелкните правой кнопкой мыши узел проекта и выберите "Обновить проект" из базы данных.

Скриншот диалогового окна обновления базы данных в Visual Studio Code.

В диалоговом окне "Обновить базу данных" выберите подключение к базе данных, из которой нужно импортировать объекты. Если вы подключились к базе данных в представлении "Подключения", она отображается в списке истории.

Выберите вариант "Просмотреть изменения в схеме", чтобы просмотреть и выбрать подмножество объектов для импорта или применения всех изменений для импорта всех объектов.

В Solution Explorer щелкните правой кнопкой мыши узел проекта и выберите Import from Database... .

В диалоговом окне импорта базы данных выберите подключение к базе данных, из которой вы хотите импортировать объекты.

Снимок экрана: диалоговое окно импорта базы данных в SSMS.

Параметры импорта по умолчанию импортируют все объекты из базы данных в проект и упорядочивать их в папках по схеме и типу объектов, но отменяют импорт, если все объекты в проекте перезаписываются. Вы можете изменить импорт, чтобы обновить проект с объектами из базы данных, выбрав перезаписать существующие объекты в проекте. Выберите "Импорт" , чтобы начать импорт.

После завершения импорта Solution Explorer обновляется с импортированными объектами.

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

sqlpackage /a:Extract /ssn:localhost /sdn:MyDatabase /tf:MyDatabaseProject /p:ExtractTarget=SchemaObjectType

Когда эти папки помещаются в папку проекта базы данных SQL в стиле ПАКЕТА SDK, они автоматически включаются в проект без необходимости импортировать их или изменить файл проекта SQL.

Шаг 3. Создание проекта SQL

Процесс сборки проверяет связи между объектами и синтаксисом для целевой платформы, указанной в файле проекта. Результатом процесса сборки является файл .dacpac, который можно использовать для развертывания проекта на целевой базе данных. Этот файл содержит скомпилированную модель схемы базы данных.

В Solution Explorer щелкните правой кнопкой мыши узел проекта и выберите Build.

Окно вывода автоматически открывается для отображения процесса сборки. При возникновении ошибок или предупреждений они отображаются в окне вывода. В успешной сборке создается артефакт сборки (.dacpac файл), а его расположение включается в выходные данные сборки (по умолчанию bin\Debug\projectname.dacpac).

В Solution Explorer щелкните правой кнопкой мыши узел проекта и выберите Build.

Окно вывода автоматически открывается для отображения процесса сборки. При возникновении ошибок или предупреждений они отображаются в окне вывода. В успешной сборке создается артефакт сборки (.dacpac файл), а его расположение включается в выходные данные сборки (по умолчанию bin\Debug\projectname.dacpac).

В представлении Database Projects в Visual Studio Code щелкните правой кнопкой мыши узел проекта и выберите Build.

Окно вывода автоматически открывается для отображения процесса сборки. При возникновении ошибок или предупреждений они отображаются в окне вывода. В успешной сборке создается артефакт сборки (.dacpac файл), а его расположение включается в выходные данные сборки (по умолчанию bin/Debug/projectname.dacpac).

В Solution Explorer щелкните правой кнопкой мыши узел проекта и выберите Build.

Скриншот проводника решений в SQL Server Management Studio с доступной опцией сборки.

Окно вывода автоматически открывается для отображения процесса сборки. При возникновении ошибок или предупреждений они отображаются в окне вывода. В успешной сборке создается артефакт сборки (.dacpac файл), а его расположение включается в выходные данные сборки (по умолчанию bin\Debug\projectname.dacpac).

Вы можете создавать проекты базы данных SQL из командной dotnet build строки с помощью команды.

dotnet build

# optionally specify the project file
dotnet build MyDatabaseProject.sqlproj

Выходные данные сборки включают любые ошибки или предупреждения, а также определенные файлы и номера строк, в которых они происходят. В успешной сборке создается артефакт сборки (.dacpac файл), а его расположение включается в выходные данные сборки (по умолчанию bin/Debug/projectname.dacpac).