Обзор ссылок на пакеты проектов SQL
Область применения: SQL Server База данных SQL Azure Управляемый экземпляр SQL Azure базе данных SQL в Microsoft Fabric
Ссылки на пакеты в проектах SQL позволяют ссылаться на объекты базы данных из других проектов или пакетов NuGet. Объекты базы данных, добавленные в проект с помощью ссылок на пакеты, могут быть частью одной базы данных, другой базы данных на одном сервере или другой базой данных на другом сервере.
Примечание.
Ссылки на пакеты — это рекомендуемый метод для ссылки на объекты базы данных в новой разработке. Ссылки на пакеты NuGet поддерживаются только в проектах SQL в стиле ПАКЕТА SDK (предварительная версия).
Ссылки на пакеты объектов базы данных
Ссылки на пакеты — это один из нескольких методов добавления объектов базы данных в проект SQL в качестве ссылки на базу данных. Ссылки на пакеты могут содержать объекты для одной базы данных, другой базы данных на одном сервере или другую базу данных на другом сервере. Ссылки на пакеты можно использовать для разбиения базы данных на небольшие, более управляемые проекты, что может помочь сократить время, необходимое для создания проекта во время итеративной локальной разработки.
Пример и синтаксис файла проекта SQL
Ссылки на пакеты добавляются в проект SQL с помощью записей в .sqlproj
файле, аналогичных проектам C#. Если ссылка на пакет находится в другой базе данных на одном сервере, <DatabaseSqlCmdVariable>
элемент включается в ссылку на пакет. Если ссылка на пакет находится в другой базе данных на другом сервере, <ServerSqlCmdVariable>
элемент также включается в ссылку на пакет. Ссылки на пакеты в ту же базу данных не включают <ServerSqlCmdVariable>
или <DatabaseSqlCmdVariable>
элементы.
В следующем примере содержится ссылка на пакет в качестве ссылки Contoso.AdventureWorks.SalesLT
на базу данных для той же базы данных, где объекты в пакете становятся частью модели базы данных в проекте SQL:
...
<ItemGroup>
<PackageReference Include="Contoso.AdventureWorks.SalesLT" Version="1.1.0" />
</ItemGroup>
</Project>
Системные базы данных
Системные базы данных SQL (master
, msdb
) публикуются в NuGet.org в качестве ссылочных пакетов баз данных. Эти пакеты содержат схему системных баз данных и могут использоваться в качестве ссылок на пакеты в проектах SQL. Пакеты системной базы данных версии соответствуют версии SQL Server, с которыми они связаны. Например, master
пакет системной базы данных для SQL Server 2022 является Microsoft.SqlServer.Dacpacs.Master
версией 160.2.1
и может быть добавлен в проект SQL в качестве ссылки на пакет:
...
<ItemGroup>
<PackageReference Include="Microsoft.SqlServer.Dacpacs.Master" Version="160.2.1" />
</ItemGroup>
</Project>
Незначительные изменения версий отражают исправления ошибок и незначительные изменения схемы в версии SQL Server.
Доступные пакеты системной базы данных:
- Системная база данных SQL Server
master
- Системная база данных SQL Server
msdb
master
системная база данных База данных SQL Azure- Системная база данных Azure Synapse Analytics
master
- Системная база данных бессерверных пулов
master
Azure Synapse Analytics
Пакеты dacpac NuGet
Пакет ссылки на базу данных — это пакет NuGet, содержащий .dacpac
файл. Пакет NuGet можно опубликовать в веб-канале NuGet, например Azure Artifacts, для использования в проектах SQL. Создание этого пакета следует тому же процессу, что и создание пакета NuGet для других типов проектов. Дополнительные сведения см. в статье "Создание пакета с помощью dotnet CLI".
Чтобы упаковать .sqlproj
файл в виде пакета NuGet, используйте dotnet pack
команду из командной строки. По умолчанию dotnet pack
команда создает пакет NuGet из .sqlproj
файла в папке bin/Debug
.
Метаданные пакета можно указать свойствами внутри <PropertyGroup>
элемента в .sqlproj
файле. Например, следующие свойства указывают идентификатор пакета, версию, описание, авторов и компанию:
<PackageId>Contoso.AdventureWorks.SalesLT</PackageId>
<Version>1.0.0</Version>
<Description>AdventureWorks database SalesLT objects</Description>
<Authors>DevTeam</Authors>
<Company>Contoso Outdoors</Company>
.nupkg
Файл, созданный dotnet pack
командой, можно опубликовать в веб-канале NuGet для использования в проектах SQL. Эти объекты базы данных могут просматриваться всеми пользователями с доступом к пакету, поэтому следует учитывать, чтобы выбрать общедоступное или частное расположение веб-канала. Дополнительные сведения см. в разделе "Размещение с частными веб-каналами пакетов".