События
31 мар., 23 - 2 апр., 23
Самое большое событие обучения SQL, Fabric и Power BI. 31 марта – 2 апреля. Используйте код FABINSIDER, чтобы сэкономить $400.
Зарегистрироваться сегодняЭтот браузер больше не поддерживается.
Выполните обновление до Microsoft Edge, чтобы воспользоваться новейшими функциями, обновлениями для системы безопасности и технической поддержкой.
Область применения: SQL Server 2022 (16.x)
База данных SQL Azure Управляемый экземпляр SQL Azure
базе данных SQL в Microsoft Fabric
Проект базы данных SQL — это локальное представление объектов SQL, составляющих схему для одной базы данных, например таблиц, хранимых процедур или функций. Цикл разработки проекта базы данных SQL позволяет интегрировать разработку базы данных в рабочие процессы непрерывной интеграции и непрерывного развертывания (CI/CD), знакомые как рекомендации по разработке.
Проекты SQL основаны на декларативных инструкциях T-SQL. В коде проекта базы данных SQL каждый объект создается один раз. Если необходимо изменить что-то об этом объекте, например добавление столбцов или изменение типа данных, измените отдельный файл, объявляющий объект в течение первого и единственного времени.
При построении проекта базы данных SQL выходной артефакт является файлом .dacpac
. Новые и существующие базы данных можно обновить, чтобы соответствовать содержимому базы .dacpac
данных, публикуя .dacpac
ее в целевую базу данных.
Платформа проектов базы данных SQL вокруг кода базы данных, которая добавляет две базовые возможности в этот набор файлов с его процессом сборки:
Функциональные возможности проектов базы данных SQL предоставляются библиотекой Microsoft.SqlServer.DacFx .NET и представлены в нескольких средствах разработки SQL. DacFx имеет несколько точек расширяемости, таких как изменение шагов развертывания и возможность создания пользовательских правил для анализа кода. Пакет SDK для проектов SQL — Microsoft.Build.Sql, который в настоящее время доступен в предварительной версии и рекомендуется для новой разработки.
При построении проекта SQL проверяются связи между объектами. Например, определение представления не может содержать таблицу или столбцы, которые не существуют в проекте SQL.
Кроме того, проект SQL содержит свойство в файле .sqlproj
под названием "целевая платформа". Эти сведения используются во время процесса сборки для проверки того, существуют ли функции и синтаксис T-SQL в этой версии SQL. Например, функции JSON, добавленные в SQL Server 2022, нельзя использовать в проекте SQL, заданном целевой платформой Sql140 (SQL Server 2017).
Чтобы создать проект SQL, мы запускаем dotnet build из командной строки. В графических инструментах, поддерживающих проекты SQL (Azure Data Studio, VS Code и Visual Studio), есть пункт меню для создания проекта SQL.
Выходные данные консоли процесса сборки могут содержать ошибки (сбой сборки) или предупреждения. Предупреждения сборки могут включать несогласованное регистрирование в именах объектов и другие настраиваемые рекомендации, но не завершайте сборку.
Выходные данные артефакта процесса сборки — это .dacpac
файл, который можно найти для сборки с параметрами по умолчанию в папке bin/Debug
.
Выходной файл, используемый .dacpac
, является мощным, повторно используемым и декларативным артефактом. С помощью этого файла можно использовать SqlPackage или другие средства для применения кода базы данных к базе данных. Команда SqlPackage для развертывания .dacpac
является командой публикации.
Например, sqlpackage /Action:Publish /SourceFile:yourfile.dacpac /TargetConnectionString:{yourconnectionstring}
.
SqlPackage перемещает связи объектов для создания каждого объекта в правильном порядке при публикации dacpac в новой базе данных. Например, SqlPackage создает Table_A перед Table_B, если Table_B имеет внешний ключ для Table_A.
Вы не хотите выполнять всю папку скриптов SQL, особенно если вы можете использовать проекты SQL, которые автоматически выполняют каждый раздел T-SQL в правильном порядке на основе связей объектов.
Помимо навигации по иерархии объектов при публикации в новых базах данных, .dacpac
процесс публикации также вычисляет разницу между источником .dacpac
и целевой базой данных перед определением действий, которые необходимо предпринять для обновления этой базы данных. Например, если Table_C отсутствует два столбца в базе данных, которая находится в проекте SQL и StoredProcedure_A была изменена, SqlPackage создает ALTER TABLE
инструкцию и ALTER PROCEDURE
инструкцию вместо слепой попытки создать кучу объектов.
Гибкость, предоставляемая командой публикации для существующих баз данных, не ограничивается одной базой данных. Его .dacpac
можно развернуть несколько раз, например при обновлении парка сотен баз данных.
Проекты базы данных SQL отлично подходят для команд, которые хотят интегрировать разработку баз данных в рабочий процесс CI/CD. Декларативный характер проектов SQL позволяет использовать один источник истины для схемы базы данных, а процесс сборки и публикации обеспечивает повторяющийся и надежный способ развертывания изменений в базах данных.
Проекты базы данных SQL используются для отслеживания источника истины для состояния базы данных, включая разработку с помощью реляционного средства сопоставления объектов (ORM), например EF Core. Графическое средство или командная строка можно использовать для извлечения схемы базы данных в проект SQL независимо от ORM, используемого для создания базы данных.
Проекты базы данных SQL поддерживают семейство баз данных SQL Server и Azure SQL, включая База данных SQL Azure и Azure Synapse Analytics. Независимо от того, разрабатываете ли вы приложение или хранилище данных, проекты базы данных SQL можно использовать для управления схемой базы данных. Проекты SQL можно разрабатывать из средств в Visual Studio, VS Code и Azure Data Studio.
Исходный формат проекта SQL основан на MSBuild (платформа .NET Framework) и является форматом, используемым SQL Server Data Tools в Visual Studio. Формат проекта в стиле ПАКЕТА SDK основан на новых проектах пакета SDK, представленных в .NET Core, и используется расширением База данных SQL Projects для Azure Data Studio и VS Code. Поддержка проектов SQL в стиле ПАКЕТА SDK в Visual Studio находится в стратегии.
Новая работа по разработке должна рассмотреть возможность использования формата проекта в стиле ПАКЕТА SDK, так как это формат, который будет поддерживаться в будущем. Формат проекта в стиле ПАКЕТА SDK является более гибким и содержит новые функции, недоступные в исходных проектах SQL:
Проекты в стиле SDK имеют супермножество функций из исходных проектов SQL, а существующие проекты SQL можно преобразовать в проекты в стиле SDK путем изменения файла проекта.
Исключением из охвата функциональных возможностей является поддержка объектов SQLCLR, для которых требуется .NET Framework. Проект, содержащий объекты SQLCLR, можно преобразовать в проект в стиле ПАКЕТА SDK, но для проекта требуется .NET Framework и должен быть построен в Visual Studio в Windows. После завершения сборки проекта с объектом SQLCLR, .dacpac
можно развернуть с помощью SqlPackage в .NET и .NET Framework и использовать в качестве ссылки .dacpac
в проекте (в той же базе данных или в другой базе данных на том же сервере).
События
31 мар., 23 - 2 апр., 23
Самое большое событие обучения SQL, Fabric и Power BI. 31 марта – 2 апреля. Используйте код FABINSIDER, чтобы сэкономить $400.
Зарегистрироваться сегодняОбучение
Модуль
Разработка для База данных SQL Azure - Training
Узнайте, как создать и настроить База данных SQL Azure. Вы будете использовать База данных SQL Проекты в VS Code, включая установку расширения, импорт и изменение схемы. Кроме того, вы создадите и развернете проекты баз данных в GitHub Actions и Azure Pipelines, а также автоматизируете и вызовете публикацию базы данных.
Сертификация
Администрирование инфраструктуры базы данных SQL Server для облачных, локальных и гибридных реляционных баз данных с помощью предложений реляционной базы данных Microsoft PaaS.
Документация
Средства проектов SQL - SQL Server
В этом обзоре рассматриваются средства для проектов базы данных SQL.
Начало работы с проектами базы данных SQL - SQL Server
[Описание статьи].
Создание и развертывание проекта SQL - SQL Server
Развертывание руководства по проекту SQL для SQL DevOps.