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 Fabric előzetes verziójában
Az SQL-projektek adatbázis-hivatkozásai lehetővé teszik a projektben nem szereplő objektumok beépítését egy másik projekthez, .dacpac fájlhoz vagy közzétett NuGet-csomaghoz csatolással. A projekthez hozzáadott adatbázis-objektumok részei lehetnek ugyanannak az adatbázisnak, egy másik adatbázisnak ugyanazon a kiszolgálón, vagy egy másik kiszolgálón található adatbázisnak. Sql Server-fejlesztés esetén az adatbázis-hivatkozások segítségével egy másik, ugyanazon a kiszolgálón lévő adatbázisra hivatkozhat háromrészes elnevezés céljából, vagy egy másik kiszolgálón lévő másik adatbázisra hivatkozhat adatbázisközi lekérdezésekhez. A különböző csoportokban nagy számú objektumot tartalmazó adatbázisok esetében az adatbázis-hivatkozások segítségével az adatbázisokat kisebb, kezelhetőbb projektekre bonthatja. A kisebb projektméret segíthet a teljesítmény javításában, és csökkentheti a projekt létrehozásához szükséges időt a helyi iteratív fejlesztés során.
Note
A projekthivatkozások és a NuGet-csomaghivatkozások az új fejlesztésben használt adatbázis-hivatkozások ajánlott módszerei. A NuGet-csomagokra való hivatkozásokat az eredeti SQL-projektek nem támogatják.
SQL-projektfájl mintája és szintaxisa
Az adatbázis-hivatkozások egy projektbe a .sqlproj fájl bejegyzésein keresztül kerülnek bele, a C#-projektekhez hasonlóan. Ha egy adatbázis-hivatkozás egy másik adatbázisra hivatkozik ugyanazon a kiszolgálón, a projekthivatkozás tartalmaz egy <DatabaseSqlCmdVariable> elemet. Ha egy adatbázis-hivatkozás egy másik kiszolgálón lévő adatbázisra hivatkozik, <ServerSqlCmdVariable> a projekthivatkozás egy elemet is tartalmaz. Az ugyanarra az adatbázisra mutató adatbázis-hivatkozások nem tartalmaznak <ServerSqlCmdVariable> elemeket vagy <DatabaseSqlCmdVariable> elemeket.
Ha az SQL-szkriptekben az adatbázis-hivatkozásra hivatkozik, a projektfájlban elnevezett SQLCMD-változókkal adja meg az adatbázis nevét. A következő SQL-szkript például az adatbázisban lévő Warehouse táblára hivatkozik:
SELECT ProductId,
StorageLocation,
BinNumber
FROM [$(Warehouse)].[Production].[ProductInventory];
Az SQLCMD változónak $(Warehouse) megfelelő adatbázis-hivatkozás szerepel a projektfájlban, és tartalmazza a <DatabaseSqlCmdVariable>Warehouse</DatabaseSqlCmdVariable> elemet.
Projekthivatkozások
Ebben a példában egy projekthivatkozást adunk hozzá egy olyan SQL-projekthez AdventureWorksSalesLT.sqlproj , amely ugyanahhoz az adatbázishoz tartozik.
<ItemGroup>
<ProjectReference Include="..\AdventureWorks\AdventureWorksSalesLT.sqlproj">
<Name>AdventureWorksSalesLT</Name>
<Project>{d703fc7a-bc47-4aef-9dc5-cf01094ddb37}</Project>
<Private>True</Private>
<SuppressMissingDependenciesErrors>False</SuppressMissingDependenciesErrors>
</ProjectReference>
</ItemGroup>
Dacpac-csomaghivatkozások
Az SQL-projektek csomagreferenciáiról további információt az SQL-projektek csomaghivatkozásait ismertető cikkben talál.
Az SQL 2022 rendszeradatbázisára mutató csomaghivatkozásmaster az alábbi példában látható:
<ItemGroup>
<PackageReference Include="Microsoft.SqlServer.Dacpacs.Master" Version="160.2.1" />
</ItemGroup>
Dacpac-artifakt hivatkozások
Az összetevőfájlokra .dacpac mutató közvetlen hivatkozások nem ajánlottak az SDK-stílusú projektek új fejlesztéséhez. Ehelyett használjon NuGet-csomaghivatkozásokat.
Az eredeti SQL-projektekben a fájlhivatkozások a .dacpac fájlban, amely tartalmaz egy .sqlproj elemet, vannak megadva. Az alábbi példa egy .dacpac összetevőre mutató hivatkozást mutat be egy .dacpac másik projektben lévő fájlra ugyanazon a kiszolgálón:
<ItemGroup>
<ArtifactReference Include="..\AdventureWorks\Warehouse\bin\Release\Warehouse.dacpac">
<HintPath>..\AdventureWorks\Warehouse\bin\Release\Warehouse.dacpac</HintPath>
<SuppressMissingDependenciesErrors>False</SuppressMissingDependenciesErrors>
<DatabaseSqlCmdVariable>Warehouse</DatabaseSqlCmdVariable>
</ArtifactReference>
</ItemGroup>
Projekthivatkozások hozzáadása és használata
Projekthivatkozás hozzáadása
Ha projekthivatkozást szeretne hozzáadni egy SQL-projekthez a Visual Studióban, kattintson a jobb gombbal a Projekt alatti Hivatkozások csomópontra a Megoldáskezelőben , és válassza az Adatbázis-referencia hozzáadása lehetőséget.
Az Adatbázis-referenciák hozzáadása párbeszédpanel a következőre mutató hivatkozás hozzáadásának lehetőségeit mutatja be:
- SQL-projekt ugyanabból a megoldásból
- rendszeradatbázis (a Visual Studióba automatikusan belefoglalt fájlokból
.dacpac) - bármely adatréteg-alkalmazásfájl a helyi fájlrendszerben (
.dacpac)
A párbeszédpanel egy legördülő listát is tartalmaz, amely a következő referenciahelyek közül választható ki:
- ugyanaz az adatbázis
- eltérő adatbázis, ugyanaz a kiszolgáló
- különböző adatbázis, eltérő kiszolgáló
Ha projekthivatkozást szeretne hozzáadni egy SQL-projekthez, adjon hozzá egy <ItemGroup> elemet a .sqlproj fájlhoz, amely minden adatbázis-hivatkozáshoz megfelelő hivatkozási elemet biztosít. A következő projekthivatkozás például hozzáadódik egy SQL-projekthez, hogy egy WorldWideImporters másik kiszolgálón lévő másik adatbázisban lévő projektre hivatkozzon:
<ItemGroup>
<ProjectReference Include="..\Contoso\WorldWideImporters.sqlproj">
<Name>WorldWideImporters</Name>
<Project>{d703fc7a-bc47-4aef-9dc5-cf01094ddb37}</Project>
<SuppressMissingDependenciesErrors>False</SuppressMissingDependenciesErrors>
<ServerSqlCmdVariable>WWIServer</ServerSqlCmdVariable>
<DatabaseSqlCmdVariable>WorldWideImporters</DatabaseSqlCmdVariable>
</ProjectReference>
</ItemGroup>
A projekthivatkozás az SQL-projekt mintanézet-definíciójában használatos:
CREATE VIEW dbo.WorldWide_Products
AS
SELECT ProductID, ProductName, SupplierID
FROM [$(WWIServer)].[$(WorldWideImporters)].[Purchasing].[Suppliers]
Ha adatbázis-hivatkozást szeretne hozzáadni egy SQL-projekthez az SQL Database Projects bővítményben, kattintson a jobb gombbal az Adatbázis-hivatkozások csomópontra a projekt alatt az Adatbázisprojektek nézetben, és válassza az Adatbázis-referencia hozzáadása lehetőséget.
A rendelkezésre álló referenciatípusok a következők:
- rendszeradatbázis
- adatrétegű alkalmazás (
.dacpac) - közzétett adatréteg-alkalmazás (
.nupkg) - projekt
A bővítmény a következő referenciahelyek közül való kiválasztást is kéri:
- ugyanaz az adatbázis
- eltérő adatbázis, ugyanaz a kiszolgáló
- különböző adatbázis, eltérő kiszolgáló
Ha projekthivatkozást szeretne hozzáadni egy SQL-projekthez, adjon hozzá egy <ItemGroup> elemet a .sqlproj fájlhoz, amely minden adatbázis-hivatkozáshoz megfelelő hivatkozási elemet biztosít. A következő projekthivatkozás például hozzáadódik egy SQL-projekthez, hogy egy WorldWideImporters másik kiszolgálón lévő másik adatbázisban lévő projektre hivatkozzon:
<ItemGroup>
<ProjectReference Include="..\Contoso\WorldWideImporters.sqlproj">
<Name>WorldWideImporters</Name>
<Project>{d703fc7a-bc47-4aef-9dc5-cf01094ddb37}</Project>
<SuppressMissingDependenciesErrors>False</SuppressMissingDependenciesErrors>
<ServerSqlCmdVariable>WWIServer</ServerSqlCmdVariable>
<DatabaseSqlCmdVariable>WorldWideImporters</DatabaseSqlCmdVariable>
</ProjectReference>
</ItemGroup>
A projekthivatkozás az SQL-projekt mintanézet-definíciójában használatos:
CREATE VIEW dbo.WorldWide_Products
AS
SELECT ProductID, ProductName, SupplierID
FROM [$(WWIServer)].[$(WorldWideImporters)].[Purchasing].[Suppliers]
Építés projekthivatkozások alapján
Ha adatbázis-hivatkozásokat tartalmazó SQL-projektet hoz létre, további konfigurációra lehet szükség annak biztosításához, hogy a hivatkozott objektumok elérhetők legyenek a buildelési folyamat során. Ha például egy projekt folyamatos integrációs (CI) folyamatba épül, a buildügynök-környezetet a helyi fejlesztési környezethez hasonlóan kell beállítani.
-
.dacpacAz SQL-projekt hivatkozásai megkövetelik, hogy a.dacpacbuildügynök a projektfájlban megadott relatív fájlelérési útvonalon legyen jelen. - Az SQL projekt projekthivatkozásai megkövetelik, hogy a hivatkozott projekt a buildügynökön a projektfájlban meghatározott relatív fájlelőttéren legyen elérhető, és sikeresen lefordítható legyen a buildügynökön.
- Az eredeti SQL-projektekben, amelyek a Visual Studioban jöttek létre, a rendszeradatbázis-hivatkozásokhoz szükséges, hogy a buildügynökön a Visual Studio legyen telepítve.
- Az SQL-projekt NuGet-csomaghivatkozásaihoz közzé kell tenni a csomagot egy NuGet-hírcsatornában, amely a buildügynök csomagforrásaként is be van állítva.
Közzététel projekthivatkozásokkal
.dacpac Az adatbázis-hivatkozásokat tartalmazó projektből készült adatok közzététele nem igényel további lépéseket. A .dacpac fájl tartalmazza a hivatkozott objektumokat és a projektfájlban megadott SQLCMD-változókat.
Az ugyanabban az adatbázisban lévő objektumokra mutató adatbázis-hivatkozások esetében a hivatkozott projekt objektumai szerepelnek a .dacpac fájlban, de alapértelmezés szerint nem szerepelnek az üzembe helyezésben. Az objektumok üzembe helyezésbe való bevonásához használja az /p:IncludeCompositeObjects=true opciót az SqlPackage parancssori eszközében. A következő parancs például üzembe helyezi a AdventureWorks projektet azzal a /p:IncludeCompositeObjects=true beállítással, hogy az adatbázis-hivatkozásokból származó objektumokat belefoglalja az AdventureWorksbe:
sqlpackage /Action:Publish /SourceFile:AdventureWorks.dacpac /TargetConnectionString:{connection_string_here} /p:IncludeCompositeObjects=true
Ha adatbázis-hivatkozásokat .dacpac tartalmazó fájlt helyez üzembe különböző adatbázisra (ugyanazon vagy más kiszolgálón), a projektfájlban megadott SQLCMD-változókat a célkörnyezet megfelelő értékeire kell állítani. Az SQLCMD változó értékeinek beállítása az üzembe helyezés során az /v parancssori eszközben található beállítással történik. A következő parancs például a WorldWideImporters változót WorldWideImporters értékre, a WWIServer változót pedig localhost értékre állítja.
sqlpackage /Action:Publish /SourceFile:AdventureWorks.dacpac /TargetConnectionString:{connection_string_here} /v:WorldWideImporters=WorldWideImporters /v:WWIServer=localhost