Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Berlaku untuk:SQL Server
Azure SQL Database
Azure SQL Managed Instance
SQL database di Microsoft Fabric
Referensi paket dalam proyek SQL memungkinkan Anda mereferensikan objek database dari proyek lain atau paket NuGet. Objek database yang ditambahkan ke proyek melalui referensi paket dapat menjadi bagian dari database yang sama, database yang berbeda di server yang sama, atau database yang berbeda di server yang berbeda.
Catatan
Referensi paket adalah metode yang direkomendasikan untuk mereferensikan objek database dalam pengembangan baru. Mereferensikan paket NuGet hanya didukung dalam proyek SQL bergaya SDK.
Referensi objek paket database
Referensi paket adalah salah satu dari beberapa metode untuk menambahkan objek database ke proyek SQL sebagai referensi database. Referensi paket dapat berisi objek untuk database yang sama, database yang berbeda di server yang sama, atau database yang berbeda di server yang berbeda. Referensi paket dapat digunakan untuk memecah database menjadi proyek yang lebih kecil dan lebih mudah dikelola, yang dapat membantu mengurangi waktu yang diperlukan untuk membangun proyek selama pengembangan lokal berulang.
Sampel dan sintaks file proyek SQL
Referensi paket ditambahkan ke proyek SQL melalui entri dalam .sqlproj
file, mirip dengan proyek C#. Ketika referensi paket adalah ke database yang berbeda di server yang sama, <DatabaseSqlCmdVariable>
elemen disertakan dalam referensi paket. Ketika referensi paket adalah ke database yang berbeda di server yang berbeda, <ServerSqlCmdVariable>
elemen juga disertakan dalam referensi paket. Referensi paket ke database yang sama tidak disertakan <ServerSqlCmdVariable>
atau <DatabaseSqlCmdVariable>
elemen.
Contoh berikut menyertakan referensi paket ke Contoso.AdventureWorks.SalesLT
paket sebagai referensi database untuk database yang sama di mana objek dalam paket menjadi bagian dari model database dalam proyek SQL:
...
<ItemGroup>
<PackageReference Include="Contoso.AdventureWorks.SalesLT" Version="1.1.0" />
</ItemGroup>
</Project>
Contoh berikut mencakup referensi paket ke paket Contoso.AdventureWorks
sebagai referensi database untuk database yang berbeda (AdventureWorks) di server yang sama di mana objek dalam paket menjadi bagian dari model database dalam proyek SQL:
...
<ItemGroup>
<PackageReference Include="Contoso.AdventureWorks" Version="1.1.0">
<DatabaseSqlCmdVariable>AdventureDB</DatabaseSqlCmdVariable>
<DacpacName>AdventureWorks</DacpacName>
</PackageReference>
</ItemGroup>
<ItemGroup>
<SqlCmdVariable Include="AdventureDB">
<DefaultValue>AdventureWorks</DefaultValue>
<Value>$(SqlCmdVar__1)</Value>
</SqlCmdVariable>
</ItemGroup>
</Project>
Dalam contoh ini, file .dacpac
AdventureWorks diterbitkan sebagai paket Contoso.AdventureWorks
versi 1.1.0
ke umpan NuGet. Elemen <DatabaseSqlCmdVariable>
menentukan nama database pada server yang sama di mana objek dalam paket berada dan akan digunakan untuk menunjukkan referensi ini dalam penamaan tiga bagian. Variabel SQLCMDAdventureDB
digunakan untuk mengatur nama database pada waktu penyebaran dan digunakan dalam proyek yang mirip dengan kueri contoh ini:
SELECT * FROM [$(AdventureDB)].dbo.Customers;
Elemen <DacpacName>
menentukan nama file .dacpac
untuk referensi paket, tanpa ekstensi atau jalur file. Elemen <DacpacName>
bersifat opsional dan hanya diperlukan ketika nama file .dacpac
berbeda dari nama paket.
Sistem database
Database sistem SQL (master
, msdb
) diterbitkan pada NuGet.org sebagai paket referensi database. Paket ini berisi skema untuk database sistem dan dapat digunakan sebagai referensi paket dalam proyek SQL. Paket database sistem diberi versi untuk menyelaraskan dengan versi SQL Server yang terkait dengannya. Misalnya, master
paket database sistem untuk SQL Server 2022 adalah Microsoft.SqlServer.Dacpacs.Master
versi 160.2.1
dan dapat ditambahkan ke proyek SQL sebagai referensi paket:
...
<ItemGroup>
<PackageReference Include="Microsoft.SqlServer.Dacpacs.Master" Version="160.2.1" />
</ItemGroup>
</Project>
Perubahan versi minor mencerminkan perbaikan bug dan perubahan kecil pada skema dalam versi SQL Server.
Paket database sistem yang tersedia adalah:
-
Sistem database SQL Server
master
-
Sistem database SQL Server
msdb
-
Basis data sistem Azure SQL
master
-
Database sistem Azure Synapse Analytics
master
-
Database sistem kumpulan tanpa server Azure Synapse Analytics
master
Paket dacpac Paket NuGet
Paket referensi database adalah paket NuGet yang berisi .dacpac
file. Paket NuGet dapat diterbitkan ke umpan NuGet, seperti Artefak Azure, untuk digunakan dalam proyek SQL. Membuat paket ini mengikuti proses yang sama dengan membuat paket NuGet untuk jenis proyek lainnya. Untuk informasi selengkapnya, lihat Membuat paket dengan dotnet CLI.
Untuk mengemas .sqlproj
file sebagai paket NuGet, gunakan dotnet pack
perintah dari baris perintah. Secara default, dotnet pack
perintah membuat paket NuGet dari .sqlproj
file di bin/Debug
folder.
Metadata paket dapat ditentukan dengan properti di elemen <PropertyGroup>
dalam file .sqlproj
. Misalnya, properti berikut menentukan ID paket, versi, deskripsi, penulis, dan perusahaan:
<PackageId>Contoso.AdventureWorks.SalesLT</PackageId>
<Version>1.0.0</Version>
<Description>AdventureWorks database SalesLT objects</Description>
<Authors>DevTeam</Authors>
<Company>Contoso Outdoors</Company>
File yang dibuat oleh perintah .nupkg
dotnet pack
dapat diterbitkan ke umpan NuGet untuk digunakan dalam proyek SQL. Objek database ini dapat dilihat oleh siapa saja yang memiliki akses ke paket, jadi pertimbangan harus dibuat untuk memilih lokasi umpan publik atau privat. Untuk informasi selengkapnya, lihat Hosting dengan umpan paket privat.
Saat mereferensikan paket di mana PackageId
berbeda dari nama file .dacpac
, elemen <DacpacName>
diperlukan dalam referensi paket saat menggunakan paket.
Referensi paket aturan analisis kode yang diperluas
Referensi paket juga dapat digunakan untuk mereferensikan lebih banyak aturan analisis kode yang dikembangkan sebagai bagian dari ekstensibilitas analisis kode . Referensi paket untuk paket aturan analisis kode mirip dengan referensi paket untuk paket objek database. Contoh berikut menunjukkan referensi paket ke paket aturan analisis kode kustom:
<ItemGroup>
<PackageReference Include="Your.CustomCode.AnalysisRules" Version="1.2.3" />
</ItemGroup>
Paket yang dirujuk harus tersedia di umpan NuGet, seperti NuGet.org, Azure Artifacts, atau sumber lokal. Ketika paket yang berisi aturan analisis kode dirujuk, aturan secara otomatis disertakan dalam proyek SQL dan dievaluasi ketika properti proyek RunSqlCodeAnalysis
diatur ke true. Aturan dapat dinonaktifkan atau ditingkatkan untuk mengembalikan kesalahan satu per satu di properti proyek.