Odkazy na balíčky projektů SQL
platí pro:SQL Server
Azure SQL Database
Azure SQL Managed Instance
SQL Database v Microsoft Fabric
Odkazy na balíčky v projektech SQL umožňují odkazovat na databázové objekty z jiných projektů nebo balíčků NuGet. Databázové objekty přidané do projektu prostřednictvím odkazů na balíčky mohou být součástí stejné databáze, jiné databáze na stejném serveru nebo jiné databáze na jiném serveru.
Poznámka
Odkazy na balíčky jsou doporučenou metodou pro odkazování na databázové objekty v novém vývoji. Odkazování na balíčky NuGet je podporováno pouze v projektech SQL ve stylu sady SDK.
Odkazy na balíčky databázových objektů
Odkazy na balíčky jsou jednou z několika metod přidání databázových objektů do projektu SQL jako referenční databáze. Odkazy na balíčky mohou obsahovat objekty pro stejnou databázi, jinou databázi na stejném serveru nebo jinou databázi na jiném serveru. Odkazy na balíčky se dají použít k rozdělení databáze do menších, lépe spravovatelných projektů, což může pomoct zkrátit dobu potřebnou k sestavení projektu během iterativního místního vývoje.
Ukázka a syntaxe souboru projektu SQL
Odkazy na balíčky se přidají do projektu SQL prostřednictvím položek v souboru .sqlproj
, podobně jako projekty jazyka C#. Pokud je odkaz na balíček na jiné databázi na stejném serveru, <DatabaseSqlCmdVariable>
prvek je součástí odkazu na balíček. Pokud je odkaz na balíček na jiné databázi na jiném serveru, <ServerSqlCmdVariable>
prvek je také součástí odkazu na balíček. Odkazy na balíčky do stejné databáze nezahrnují prvky <ServerSqlCmdVariable>
ani <DatabaseSqlCmdVariable>
.
Následující příklad obsahuje odkaz na balíček Contoso.AdventureWorks.SalesLT
jako odkaz na databázi pro stejnou databázi, ve které se objekty v balíčku stanou součástí databázového modelu v projektu SQL:
...
<ItemGroup>
<PackageReference Include="Contoso.AdventureWorks.SalesLT" Version="1.1.0" />
</ItemGroup>
</Project>
Následující příklad obsahuje odkaz na balíček Contoso.AdventureWorks
jako odkaz na databázi pro jinou databázi (AdventureWorks) na stejném serveru, kde se objekty v balíčku stanou součástí databázového modelu v projektu 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>
V tomto příkladu je soubor AdventureWorks .dacpac
publikován jako balíček Contoso.AdventureWorks
verze 1.1.0
do úložiště NuGet. Prvek <DatabaseSqlCmdVariable>
určuje název databáze na stejném serveru, na kterém jsou umístěny objekty v balíčku, a slouží k označení tohoto odkazu v třídílné pojmenování. Proměnná SQLCMDAdventureDB
slouží k nastavení názvu databáze v době nasazení a používá se v projektu podobně jako v tomto ukázkovém dotazu:
SELECT * FROM [$(AdventureDB)].dbo.Customers;
Element <DacpacName>
určuje název souboru .dacpac
pro odkaz na balíček bez přípony souboru nebo cesty. Element <DacpacName>
je volitelný a vyžaduje se pouze v případě, že se název souboru .dacpac
liší od názvu balíčku.
Systémové databáze
Systémové databáze SQL (master
, msdb
) jsou publikovány na NuGet.org jako referenční balíčky databáze. Tyto balíčky obsahují schéma pro systémové databáze a lze je použít jako odkazy na balíčky v projektech SQL. Systémové databázové balíčky mají verze, které se shodují s verzí SQL Serveru, ke které jsou přidružené. Například balíček systémové databáze master
pro SQL Server 2022 je Microsoft.SqlServer.Dacpacs.Master
verze 160.2.1
a lze ho přidat do projektu SQL jako odkaz na balíček:
...
<ItemGroup>
<PackageReference Include="Microsoft.SqlServer.Dacpacs.Master" Version="160.2.1" />
</ItemGroup>
</Project>
Změny menší verze odrážejí opravy chyb a dílčí změny schématu během verze SQL Serveru.
Dostupné systémové databázové balíčky jsou:
-
SQL Server
master
systémová databáze -
systémovou databázi SQL Serveru
msdb
-
Azure SQL Database
master
systémová databáze -
Azure Synapse Analytics
master
systémová databáze -
bezserverové fondy Azure Synapse Analytics
master
systémovou databázi
Balíčky Dacpac NuGet
Referenční balíček databáze je balíček NuGet, který obsahuje soubor .dacpac
. Balíček NuGet lze publikovat do informačního kanálu NuGet, jako je Azure Artifacts, pro použití v projektech SQL. Vytvoření tohoto balíčku se řídí stejným procesem jako vytvoření balíčku NuGet pro jiné typy projektů. Další informace najdete v tématu Vytvoření balíčku pomocí rozhraní příkazového řádku dotnet.
Pokud chcete zabalit soubor .sqlproj
jako balíček NuGet, použijte příkaz dotnet pack
z příkazového řádku. Ve výchozím nastavení příkaz dotnet pack
vytvoří balíček NuGet ze souboru .sqlproj
ve složce bin/Debug
.
Metadata balíčku mohou být určena vlastnostmi uvnitř <PropertyGroup>
elementu v souboru .sqlproj
. Například následující vlastnosti určují ID balíčku, verzi, popis, autory a společnost:
<PackageId>Contoso.AdventureWorks.SalesLT</PackageId>
<Version>1.0.0</Version>
<Description>AdventureWorks database SalesLT objects</Description>
<Authors>DevTeam</Authors>
<Company>Contoso Outdoors</Company>
Soubor .nupkg
vytvořený příkazem dotnet pack
lze publikovat do informačního kanálu NuGet pro použití v projektech SQL. Tyto databázové objekty může zobrazit každý, kdo má přístup k databázovému balíčku, takže je třeba zvážit výběr veřejného nebo soukromého umístění kanálu pro doručování dat. Další informace najdete v tématu Hostování s privátními informačními kanály balíčků.
Při odkazování na balíček, kde se PackageId
liší od názvu souboru .dacpac
, je při využívání balíčku vyžadován element <DacpacName>
v odkazu na balíček.
Odkazy na balíčky rozšířených pravidel analýzy kódu
Odkazy na balíčky lze také použít k odkazování na více pravidel analýzy kódu, která byla vyvinuta v rámci rozšiřitelnosti analýzy kódu. Odkaz na balíček pravidla analýzy kódu je podobný odkazu na balíček balíčku databázového objektu. Následující příklad ukazuje odkaz na balíček vlastních pravidel pro analýzu kódu:
<ItemGroup>
<PackageReference Include="Your.CustomCode.AnalysisRules" Version="1.2.3" />
</ItemGroup>
Odkazovaný balíček by měl být k dispozici v informačním kanálu NuGet , jako jsou NuGet.org, Azure Artifacts nebo místní zdroj. Pokud se odkazuje na balíček obsahující pravidla analýzy kódu, pravidla se automaticky zahrnou do projektu SQL a vyhodnotí se při nastavení vlastnosti projektu RunSqlCodeAnalysis
na hodnotu true. Pravidla mohou být ve vlastnostech projektu jednotlivě zakázána nebo nastavena na zobrazování chyby.
Související obsah
- Přehled databázových referencí
- Přehled rozšiřitelnosti pravidel analýzy kódu
- Vytvoření balíčku pomocí rozhraní příkazového řádku dotnet
- hostování s privátními informačními kanály balíčků