Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Şunlar için geçerlidir:SQL Server
Azure SQL Veritabanı
Azure SQL Yönetilen Örneği
Microsoft Fabric'te SQL veritabanı
SQL projelerindeki paket başvuruları, diğer projelerden veya NuGet paketlerinden veritabanı nesnelerine başvurmanızı sağlar. Paket başvuruları aracılığıyla bir projeye eklenen veritabanı nesneleri aynı veritabanının parçası, aynı sunucudaki farklı bir veritabanı veya farklı bir sunucudaki farklı bir veritabanı olabilir.
Note
Paket başvuruları, yeni geliştirmede veritabanı nesnelerine başvurmak için önerilen yöntemdir. NuGet paketlerine başvurmak yalnızca SDK stili sql projelerinde desteklenir.
Veritabanı nesne paketi referansları
Paket başvuruları, bir SQL projesine veritabanı başvurusu olarak veritabanı nesneleri eklemeye yönelik çeşitli yöntemlerden biridir. Paket başvuruları aynı veritabanı, aynı sunucudaki farklı bir veritabanı veya farklı bir sunucudaki farklı bir veritabanı için nesneler içerebilir. Paket başvuruları, veritabanını daha küçük, daha yönetilebilir projelere ayırmak için kullanılabilir ve bu da yinelemeli yerel geliştirme sırasında proje oluşturmak için gereken süreyi azaltmaya yardımcı olabilir.
SQL proje dosyası örneği ve söz dizimi
Paket başvuruları, C# projelerine benzer şekilde dosyadaki .sqlproj girdiler aracılığıyla sql projesine eklenir. Paket başvurusu aynı sunucudaki farklı bir veritabanına olduğunda, paket başvurusuna bir <DatabaseSqlCmdVariable> öğe eklenir. Paket başvurusu farklı bir sunucudaki farklı bir veritabanına olduğunda, paket başvurusuna bir <ServerSqlCmdVariable> öğesi de eklenir. Aynı veritabanına yönelik paket başvuruları <ServerSqlCmdVariable> veya <DatabaseSqlCmdVariable> öğeleri içermez.
Aşağıdaki örnek, paketteki nesnelerin SQL projesindeki veritabanı modelinin Contoso.AdventureWorks.SalesLT bir parçası haline geldiği aynı veritabanı için veritabanı başvurusu olarak pakete yönelik bir paket başvurusu içerir:
...
<ItemGroup>
<PackageReference Include="Contoso.AdventureWorks.SalesLT" Version="1.1.0" />
</ItemGroup>
</Project>
Aşağıdaki örnek, paketteki nesnelerin SQL projesindeki veritabanı modelinin Contoso.AdventureWorks parçası haline geldiği aynı sunucuda farklı bir veritabanı (AdventureWorks) için veritabanı başvurusu olarak pakete yönelik bir paket başvurusu içerir:
...
<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>
Bu örnekte AdventureWorks .dacpac dosyası bir NuGet akışında paket Contoso.AdventureWorks sürümü 1.1.0 olarak yayımlanır. öğesi, <DatabaseSqlCmdVariable> paketteki nesnelerin bulunduğu sunucudaki veritabanının adını belirtir ve bu başvuruyu üç bölümlü adlandırmada belirtmek için kullanılır.
SQLCMD değişkeniAdventureDB, dağıtım zamanında veritabanı adını ayarlamak için kullanılır ve projede bu örnek sorguya benzer şekilde kullanılır:
SELECT * FROM [$(AdventureDB)].dbo.Customers;
<DacpacName> öğesi, dosya uzantısı veya yolu olmadan paket başvurusu için dosyanın adını .dacpac belirtir.
<DacpacName> öğesi isteğe bağlıdır ve yalnızca dosyanın adı paketin .dacpac adından farklı olduğunda gereklidir.
Sistem veritabanları
SQL sistem veritabanları (master, msdb) NuGet.org üzerinde veritabanı başvuru paketleri olarak yayımlanır. Bu paketler sistem veritabanlarının şemasını içerir ve SQL projelerinde paket başvuruları olarak kullanılabilir. Sistem veritabanı paketleri, ilişkili oldukları SQL Server sürümüyle uyumlu olacak şekilde sürümü oluşturulur. Örneğin, SQL Server 2022 için master sistem veritabanı paketi Microsoft.SqlServer.Dacpacs.Master sürümü 160.2.1 olup, bir SQL projesine paket referansı olarak eklenebilir.
...
<ItemGroup>
<PackageReference Include="Microsoft.SqlServer.Dacpacs.Master" Version="160.2.1" />
</ItemGroup>
</Project>
İkincil sürüm değişiklikleri, SQL Server sürümünde şemada yapılan hata düzeltmelerini ve küçük değişiklikleri yansıtır.
Kullanılabilir sistem veritabanı paketleri şunlardır:
-
SQL Server
mastersistem veritabanı -
SQL Server
msdbsistem veritabanı -
Azure SQL Veritabanı
mastersistem veritabanı - Doku sistem nesnelerinde SQL veritabanı
-
Azure Synapse Analytics
mastersistem veritabanı -
Azure Synapse Analytics'in sunucusuz havuz sistem veritabanı
master
dacpac NuGet paketlerini paketle
Bir veritabanı referans paketi, .dacpac dosyasını içeren bir NuGet paketidir. NuGet paketi, SQL projelerinde kullanılmak üzere Azure Artifacts gibi bir NuGet akışında yayımlanabilir. Bu paketi oluşturmak, diğer proje türleri için NuGet paketi oluşturma işlemiyle aynı işlemi izler. Daha fazla bilgi için bkz. Dotnet CLI ile paket oluşturma.
Dosyayı .sqlproj NuGet paketi olarak paketlemek için komut satırındaki komutu kullanın dotnet pack . Varsayılan olarak, dotnet pack klasöründeki .sqlproj dosyasından bir NuGet paketi oluşturmak için bin/Debug komutu kullanılır.
Paket meta verileri, dosyadaki <PropertyGroup> öğesinin .sqlproj içindeki özellikler tarafından belirtilebilir. Örneğin, aşağıdaki özellikler paket kimliğini, sürümünü, açıklamasını, yazarlarını ve şirketini belirtir:
<PackageId>Contoso.AdventureWorks.SalesLT</PackageId>
<Version>1.0.0</Version>
<Description>AdventureWorks database SalesLT objects</Description>
<Authors>DevTeam</Authors>
<Company>Contoso Outdoors</Company>
.nupkg Komut tarafından dotnet pack oluşturulan dosya, SQL projelerinde kullanılmak üzere bir NuGet akışında yayımlanabilir. Bu veritabanı nesneleri pakete erişimi olan herkes tarafından görüntülenebilir, bu nedenle genel veya özel bir akış konumu seçmek için dikkate alınmalıdır. Daha fazla bilgi için bkz . Özel paket akışlarıyla barındırma.
dosyasının adından farklı olduğu PackageId bir pakete .dacpac başvururken, <DacpacName> paketi kullanırken paket başvurusunda öğesi gereklidir.
Genişletilmiş kod analizi kuralları paket başvuruları
Paket başvuruları, kod analizi genişletilebilirliği kapsamında geliştirilen daha fazla kod analizi kuralına başvurmak için de kullanılabilir. Kod çözümleme kuralı paketinin paket başvurusu, veritabanı nesne paketinin paket başvurusuna benzer. Aşağıdaki örnekte özel kod çözümleme kuralı paketine bir paket başvurusu gösterilmektedir:
<ItemGroup>
<PackageReference Include="Your.CustomCode.AnalysisRules" Version="1.2.3" />
</ItemGroup>
Başvuruda bulunulmakta olan paket NuGet.org, Azure Artifacts veya yerel kaynak gibi bir NuGet akışında kullanılabilir olmalıdır. Kod çözümleme kuralları içeren bir pakete başvurulduğunda, kurallar SQL projesine otomatik olarak eklenir ve proje özelliği RunSqlCodeAnalysis true olarak ayarlandığında değerlendirilir. Kurallar, proje özelliklerinde tek tek hata döndürmek için devre dışı bırakılabilir veya yükseltilebilir.