Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A következőkre vonatkozik:SQL Server
Azure SQL Database
Felügyelt Azure SQL-példány
SQL-adatbázis a Microsoft Fabricben
Az SQL-projektek csomaghivatkozásai lehetővé teszik, hogy más projektekből vagy NuGet-csomagokból származó adatbázis-objektumokra hivatkozzon. A projekthez csomaghivatkozásokkal hozzáadott adatbázis-objektumok lehetnek ugyanahhoz az adatbázishoz, egy másik adatbázishoz ugyanazon a kiszolgálón, vagy egy másik kiszolgálón található adatbázishoz.
Note
A csomaghivatkozások az adatbázis-objektumok új fejlesztésben való hivatkozásához ajánlott módszer. A NuGet-csomagokra való hivatkozás csak SDK-stílusú SQL-projektekben támogatott.
Adatbázis-objektumcsomag-hivatkozások
A csomaghivatkozások egyike azoknak a módszereknek, amelyek adatbázis-objektumokat adnak hozzá egy SQL-projekthez adatbázis-referenciaként. A csomaghivatkozások tartalmazhatnak ugyanahhoz az adatbázishoz tartozó objektumokat, egy másik adatbázist ugyanazon a kiszolgálón, vagy egy másik kiszolgálón lévő adatbázist. A csomaghivatkozásokkal kisebb, kezelhetőbb projektekre bonthatja az adatbázisokat, ami segíthet csökkenteni a projekt létrehozásához szükséges időt az iteratív helyi fejlesztés során.
SQL-projektfájl mintája és szintaxisa
A csomaghivatkozások a C#-projektekhez hasonlóan a .sqlproj fájlban lévő bejegyzéseken keresztül kerülnek egy SQL-projektbe. Ha egy csomaghivatkozás egy másik adatbázisra mutat ugyanazon a kiszolgálón, egy <DatabaseSqlCmdVariable> elem szerepel a csomaghivatkozásban. Ha egy csomaghivatkozás egy másik kiszolgálón lévő adatbázisra mutat, a csomaghivatkozás egy <ServerSqlCmdVariable> elemet is tartalmaz. Az ugyanarra az adatbázisra mutató csomaghivatkozások nem tartalmaznak <ServerSqlCmdVariable> vagy <DatabaseSqlCmdVariable> elemeket.
Az alábbi példa a Contoso.AdventureWorks.SalesLT csomagra mutató csomaghivatkozást tartalmaz adatbázis-hivatkozásként arra az adatbázisra, amelyben a csomag objektumai az SQL-projekt adatbázismodelljének részévé válnak:
...
<ItemGroup>
<PackageReference Include="Contoso.AdventureWorks.SalesLT" Version="1.1.0" />
</ItemGroup>
</Project>
Az alábbi példa egy Contoso.AdventureWorks-csomagra mutató csomaghivatkozást tartalmaz egy másik adatbázis (AdventureWorks) adatbázis-hivatkozásaként ugyanazon a kiszolgálón, ahol a csomag objektumai az SQL-projekt adatbázismodelljének részévé válnak:
...
<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>
Ebben a példában az AdventureWorks .dacpac fájl csomagként van közzétéve, Contoso.AdventureWorks verzió 1.1.0 formában egy NuGet-hírcsatornába. A <DatabaseSqlCmdVariable> elem annak az adatbázisnak a nevét adja meg ugyanazon a kiszolgálón, ahol a csomag objektumai találhatók, és a hivatkozás háromrészes elnevezésben való jelzésére szolgál. Az SQLCMD változóAdventureDB az adatbázis nevének beállítására szolgál az üzembe helyezéskor, és a projektben az alábbi példa-lekérdezéshez hasonlóan használja:
SELECT *
FROM [$(AdventureDB)].dbo.Customers;
A <DacpacName> elem a csomaghivatkozás .dacpac fájljának nevét adja meg a fájlkiterjesztés vagy elérési út nélkül. A <DacpacName> elem nem kötelező, és csak akkor szükséges, ha a .dacpac fájl neve eltér a csomag nevétől.
Rendszeradatbázisok
Az SQL-rendszeradatbázisok (master, msdb) adatbázis-referenciacsomagokként vannak közzétéve NuGet.org. Ezek a csomagok tartalmazzák a rendszeradatbázisok sémáját, és sql-projektek csomaghivatkozásaiként használhatók. A rendszeradatbázis-csomagok verziószáma az SQL Server azon verziójához igazodik, amelyhez társítva vannak. Az SQL Server 2022 master rendszeradatbázis-csomagja például Microsoft.SqlServer.Dacpacs.Master verziójú 160.2.1, és csomaghivatkozásként hozzáadható egy SQL-projekthez:
...
<ItemGroup>
<PackageReference Include="Microsoft.SqlServer.Dacpacs.Master" Version="160.2.1" />
</ItemGroup>
</Project>
A kisebb verzió változásai a hibajavításokat és a séma apróbb változásait tükrözik egy SQL Server-verzióban.
Az elérhető rendszeradatbázis-csomagok a következők:
-
SQL Server
masterrendszeradatbázis- -
SQL Server
msdbrendszeradatbázis- -
Azure SQL Database
masterrendszeradatbázis - SQL-adatbázis a Fabric rendszerobjektumaiban
-
Adattárház a Fabric
masterrendszeradatbázisában -
Azure Synapse Analytics
masterrendszeradatbázis- -
Azure Synapse Analytics szerver nélküli készletek
masterrendszeradatbázis
dacpac NuGet-csomagok
Az adatbázis-referenciacsomagok olyan NuGet-csomagok, amelyek .dacpac fájlt tartalmaznak. A NuGet-csomag közzétehető egy NuGet-csatornán, például az Azure Artifactsben sql-projektekben való használatra. A csomag létrehozása ugyanazt a folyamatot követi, mint egy NuGet-csomag létrehozása más típusú projektekhez. További információért lásd: Csomag létrehozása a dotnet parancssorral.
Ha egy .sqlproj fájlt NuGet-csomagként szeretne csomagolni, használja a parancssorból származó dotnet pack parancsot. Alapértelmezés szerint a dotnet pack parancs létrehoz egy NuGet-csomagot a .sqlproj fájlból a bin/Debug mappában.
A csomag metaadata a <PropertyGroup> fájl .sqlproj elemében lévő tulajdonságok által meghatározható. A következő tulajdonságok például a csomagazonosítót, a verziót, a leírást, a szerzők és a vállalatot adják meg:
<PackageId>Contoso.AdventureWorks.SalesLT</PackageId>
<Version>1.0.0</Version>
<Description>AdventureWorks database SalesLT objects</Description>
<Authors>DevTeam</Authors>
<Company>Contoso Outdoors</Company>
A .nupkg parancs által létrehozott dotnet pack fájl közzétehető egy NuGet-hírcsatornában SQL-projektekben való használatra. Ezeket az adatbázis-objektumokat bárki megtekintheti, aki hozzáfér a csomaghoz, ezért érdemes megfontolni egy nyilvános vagy privát hírcsatorna helyének kiválasztását. További információ: Privát csomagcsatornákkal való üzemeltetés.
Ha olyan csomagra hivatkozik, amelyben a PackageId eltér a .dacpac fájl nevétől, a <DacpacName> elem szükséges a csomaghivatkozásban a csomag felhasználásakor.
Kiterjesztett kódelemzési szabályok csomaghivatkozásai
A csomaghivatkozások további kódelemzési szabályokra is hivatkozhatnak, amelyeket kódelemzés bővíthetőségénekrészeként fejlesztettek ki. A kódelemzési szabálycsomag csomaghivatkozása hasonló az adatbázis-objektumcsomag csomaghivatkozásához. Az alábbi példa egy egyéni kódelemzési szabálycsomagra mutató csomaghivatkozást mutat be:
<ItemGroup>
<PackageReference Include="Your.CustomCode.AnalysisRules" Version="1.2.3" />
</ItemGroup>
A hivatkozott csomagnak elérhetőnek kell lennie egy NuGet-csatornán, például NuGet.org, Azure Artifacts vagy helyi forráson. Ha kódelemzési szabályokat tartalmazó csomagra hivatkozik, a rendszer automatikusan belefoglalja a szabályokat az SQL-projektbe, és kiértékeli, ha a projekttulajdonság RunSqlCodeAnalysis igaz értékre van állítva. A szabályok letilthatók vagy emelt szintűek lehetnek, hogy a projekttulajdonságokban egyenként hibát adjanak vissza.