Panoramica dei riferimenti ai pacchetti di progetti SQL
Si applica a: SQL Server database SQL di Azure Istanza gestita di SQL di Azure database SQL in Microsoft Fabric
I riferimenti ai pacchetti nei progetti SQL consentono di fare riferimento a oggetti di database da altri progetti o pacchetti NuGet. Gli oggetti di database aggiunti a un progetto tramite riferimenti al pacchetto possono far parte dello stesso database, di un database diverso nello stesso server o di un database diverso in un server diverso.
Nota
I riferimenti ai pacchetti sono il metodo consigliato per fare riferimento agli oggetti di database in un nuovo sviluppo. Il riferimento ai pacchetti NuGet è supportato solo nei progetti SQL in stile SDK (anteprima).
Riferimenti al pacchetto di oggetti del database
I riferimenti ai pacchetti sono uno dei diversi metodi per l'aggiunta di oggetti di database a un progetto SQL come riferimento al database. I riferimenti ai pacchetti possono contenere oggetti per lo stesso database, un database diverso nello stesso server o un database diverso in un server diverso. I riferimenti ai pacchetti possono essere usati per suddividere un database in progetti più piccoli e gestibili, che consentono di ridurre il tempo necessario per compilare un progetto durante lo sviluppo locale iterativo.
Esempio e sintassi del file di progetto SQL
I riferimenti ai pacchetti vengono aggiunti a un progetto SQL tramite voci nel file .sqlproj
, simili ai progetti C#. Quando un riferimento al pacchetto si riferisce a un database diverso nello stesso server, un elemento <DatabaseSqlCmdVariable>
viene incluso nel riferimento al pacchetto. Quando un riferimento al pacchetto si riferisce a un database diverso in un server diverso, viene incluso anche un elemento <ServerSqlCmdVariable>
nel riferimento al pacchetto. I riferimenti al pacchetto allo stesso database non includono gli elementi <ServerSqlCmdVariable>
o <DatabaseSqlCmdVariable>
.
L'esempio seguente include un riferimento al pacchetto Contoso.AdventureWorks.SalesLT
come riferimento al database per lo stesso database in cui gli oggetti nel pacchetto diventano parte del modello di database nel progetto SQL:
...
<ItemGroup>
<PackageReference Include="Contoso.AdventureWorks.SalesLT" Version="1.1.0" />
</ItemGroup>
</Project>
Database di sistema
I database di sistema SQL (master
, msdb
) vengono pubblicati in NuGet.org come pacchetti di riferimento del database. Questi pacchetti contengono lo schema per i database di sistema e possono essere usati come riferimenti ai pacchetti nei progetti SQL. Le versioni dei pacchetti di database di sistema vengono allineate alla versione di SQL Server a cui sono associate. Ad esempio, il pacchetto di database di sistema master
per SQL Server 2022 è Microsoft.SqlServer.Dacpacs.Master
versione 160.2.1
e può essere aggiunto a un progetto SQL come riferimento al pacchetto:
...
<ItemGroup>
<PackageReference Include="Microsoft.SqlServer.Dacpacs.Master" Version="160.2.1" />
</ItemGroup>
</Project>
Le modifiche della versione secondaria riflettono correzioni di bug e modifiche secondarie allo schema all'interno di una versione di SQL Server.
I pacchetti di database di sistema disponibili sono:
- SQL Server
master
database di sistema - SQL Server
msdb
database di sistema - Azure SQL Database
master
database di sistema - Azure Synapse Analytics
master
database di sistema - Azure Synapse Analytics serverless pools
master
database di sistema
Pacchetto dacpac Pacchetti NuGet
Un pacchetto di riferimento al database è un pacchetto NuGet che contiene un file .dacpac
. Il pacchetto NuGet può essere pubblicato in un feed NuGet, ad esempio Azure Artifacts, per l'uso nei progetti SQL. La creazione di questo pacchetto segue lo stesso processo di creazione di un pacchetto NuGet per altri tipi di progetti. Per altre informazioni, vedere Creazione di un pacchetto con interfaccia della riga di comando (CLI) dotnet.
Per creare il pacchetto di un file .sqlproj
come pacchetto NuGet, usare il comando dotnet pack
dalla riga di comando. Per impostazione predefinita, il comando dotnet pack
crea un pacchetto NuGet dal file .sqlproj
nella cartella bin/Debug
.
I metadati del pacchetto possono essere specificati dalle proprietà all'interno dell'elemento <PropertyGroup>
nel file .sqlproj
. Ad esempio, le proprietà seguenti specificano l'ID pacchetto, la versione, la descrizione, gli autori e la società:
<PackageId>Contoso.AdventureWorks.SalesLT</PackageId>
<Version>1.0.0</Version>
<Description>AdventureWorks database SalesLT objects</Description>
<Authors>DevTeam</Authors>
<Company>Contoso Outdoors</Company>
Il file .nupkg
creato dal comando dotnet pack
può essere pubblicato in un feed NuGet da usare nei progetti SQL. Questi oggetti di database possono essere visualizzati da chiunque abbia accesso al pacchetto, pertanto è necessario prendere in considerazione la selezione di un percorso di feed pubblico o privato. Per altre informazioni, vedere Hosting con feed di pacchetti privati.