Vue d'ensemble des références de package de projets SQL
S’applique à : SQL Server Azure SQL Database Azure SQL Managed Instance
Les références de packages dans les projets SQL vous permettent de référencer des objets de base de données à partir d'autres projets ou de packages NuGet. Les objets de base de données ajoutés à un projet via des références de packages peuvent faire partie de la même base de données, d'une base de données différente sur le même serveur ou d'une base de données différente sur un serveur différent.
Remarque
Les références de package sont la méthode recommandée pour référencer les objets de la base de données dans les nouveaux développements. Le référencement des packages NuGet n'est supporté que dans les projets SQL de style SDK (aperçu).
Références de packages d'objets de base de données
Les références de packages sont l'une des méthodes permettant d'ajouter des objets de base de données à un projet SQL en tant que référence de base de données. Les références de packages peuvent contenir des objets pour la même base de données, d'une base de données différente sur le même serveur ou d'une base de données différente sur un serveur différent. Les références de packages peuvent être utilisées pour diviser une base de données en projets plus petits et plus faciles à gérer, ce qui peut contribuer à réduire le temps nécessaire à la génération d'un projet au cours du développement local itératif.
Exemple et syntaxe de fichier projet SQL
Les références de packages sont ajoutées à un projet SQL via des entrées dans le fichier .sqlproj
, de la même manière que pour les projets C#. Lorsqu'une référence de package renvoie à une autre base de données sur le même serveur, un élément <DatabaseSqlCmdVariable>
est inclus dans la référence du package. Lorsqu'une référence de package renvoie à une autre base de données sur un autre serveur, un élément <ServerSqlCmdVariable>
est également inclus dans la référence du package. Les références de packages à la même base de données n'incluent pas d'éléments <ServerSqlCmdVariable>
ou <DatabaseSqlCmdVariable>
.
L'exemple suivant inclut une référence de package au package Contoso.AdventureWorks.SalesLT
en tant que référence de base de données pour la même base de données où les objets du package font partie du modèle de base de données dans le projet SQL :
...
<ItemGroup>
<PackageReference Include="Contoso.AdventureWorks.SalesLT" Version="1.1.0" />
</ItemGroup>
</Project>
Bases de données système
Les bases de données système SQL (master
, msdb
) sont publiées sur NuGet.org en tant que packages de référence de base de données. Ces packages contiennent le schéma des bases de données du système et peuvent être utilisés comme références de packages dans les projets SQL. Les packages de base de données système sont versionnés pour s'aligner sur la version de SQL Server à laquelle ils sont associés. Par exemple, le package de base de données système master
pour SQL Server 2022 est Microsoft.SqlServer.Dacpacs.Master
version 160.2.1
et peut être ajouté à un projet SQL en tant que référence de package :
...
<ItemGroup>
<PackageReference Include="Microsoft.SqlServer.Dacpacs.Master" Version="160.2.1" />
</ItemGroup>
</Project>
Les modifications de version mineures reflètent les corrections de bogues et les modifications mineures apportées au schéma d'une version de SQL Server.
Les packages de base de données système disponibles sont les suivants :
- Base de données système
master
SQL Server - Base de données système
msdb
SQL Server - Base de données système
master
Base de données Azure SQL - Base de données système
master
Azure Synapse Analytics - Base de données système
master
des pools sans serveur Azure Synapse Analytics
Package dacpac Packages NuGet
Un package de référence de base de données est un package NuGet qui contient un fichier .dacpac
. Le package NuGet peut être publié dans un flux NuGet, tel que Azure Artifacts, pour être utilisé dans des projets SQL. La création de ce package suit le même processus que la création d'un package NuGet pour d'autres types de projets. Pour plus d'informations, consultez la section Création d'un package avec l'interface CLI dotnet.
Pour packager un fichier .sqlproj
en tant que package NuGet, utilisez la commande dotnet pack
à partir de la ligne de commande. Par défaut, la commande dotnet pack
crée un package NuGet à partir du fichier .sqlproj
dans le dossier bin/Debug
.
Les métadonnées du package peuvent être spécifiées par des propriétés à l'intérieur de l'élément <PropertyGroup>
dans le fichier .sqlproj
. Par exemple, les propriétés suivantes spécifient l'ID du package, sa version, sa description, ses auteurs et sa société :
<PackageId>Contoso.AdventureWorks.SalesLT</PackageId>
<Version>1.0.0</Version>
<Description>AdventureWorks database SalesLT objects</Description>
<Authors>DevTeam</Authors>
<Company>Contoso Outdoors</Company>
Le fichier .nupkg
créé par la commande dotnet pack
peut être publié dans un flux NuGet pour être utilisé dans des projets SQL. Ces objets de base de données peuvent être consultés par toute personne ayant accès au package. Vous devez donc réfléchir à la sélection d'un emplacement public ou privé pour les flux. Pour plus d'informations, consultez la section Hébergement avec des flux de packages privés.