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: Az SQL Server 2022 (16.x) és újabb verziói
az Azure SQL Database
Azure SQL Managed Instance
SQL-adatbázist a Microsoft Fabricben
Az SQL-adatbázisprojektek olyan SQL-objektumok helyi ábrázolása, amelyek egyetlen adatbázis sémáját alkotják, például táblákat, tárolt eljárásokat vagy függvényeket. Az SQL-adatbázisprojektek fejlesztési ciklusa lehetővé teszi, hogy az adatbázis-fejlesztés integrálható legyen egy folyamatos integrációs és folyamatos üzembe helyezési (CI/CD) munkafolyamatba, amely a fejlesztési ajánlott eljárásként ismert.
Overview
Az SQL-projektek deklaratív T-SQL-utasításokon alapulnak. Az SQL Database-projektkódban minden objektumot egyszer kell létrehoznia. Ha módosítania kell valamit az objektummal kapcsolatban, például oszlopokat kell hozzáadnia vagy módosítania egy adattípust, akkor az objektumot első és egyetlen alkalommal deklaráló egyedi fájlt kell módosítania.
Sql Database-projekt létrehozásakor a kimeneti összetevő egy .dacpac fájl. Az új és a meglévő adatbázisok a .dacpac tartalmának megfelelően frissíthetők a .dacpac céladatbázisban való közzétételével.
Az SQL Database-projektek keretrendszere az adatbáziskód körül, amely két alapvető képességet ad hozzá az adott fájlkészlethez a létrehozási folyamattal:
- objektumok közötti hivatkozások érvényesítése és az SQL adott verziójához tartozó szintaxis ellenőrzése
- A build-összetevő üzembe helyezése új vagy meglévő adatbázisokba
Az SQL-adatbázisprojektek funkcióit a Microsoft.SqlServer.DacFx .NET könyvtár biztosítja, és számos eszközben is megjelenik az SQL-fejlesztéshez. A DacFx több bővíthetőségi ponttal rendelkezik, például az üzembe helyezési lépések módosításával és a kódelemzés egyéni szabályainak létrehozásával. Az SQL-projektekhez készült project SDK a Microsoft.Build.Sql, új fejlesztéshez ajánlott , és a Visual Studio Code SQL Database Projects bővítménye által használt formátum. A Visual Studio SDK-stílusú SQL-projektjeinek támogatása előzetes verzióban érhető el.
Validation
Sql-projekt létrehozásakor a rendszer ellenőrzi az objektumok közötti kapcsolatokat. A nézetdefiníciók például nem tartalmazhatnak olyan táblát vagy oszlopot, amely nem létezik az SQL-projektben.
Emellett egy SQL-projekt tartalmaz egy tulajdonságot a ".sqlproj" nevű fájlban. Ezek az információk a buildelési folyamat során annak ellenőrzésére szolgálnak, hogy a függvények és a T-SQL szintaxisa létezik-e az SQL adott verziójában. Az SQL Server 2022-ben hozzáadott JSON-függvények például nem használhatók az Sql140 (SQL Server 2017) célplatformra beállított SQL-projektben.
SQL-projekt létrehozásához dotnet buildet futtatunk a parancssorból. Az SQL-projekteket támogató grafikus eszközökben (Visual Studio Code és Visual Studio) található egy menüelem az SQL-projekt létrehozásához.
A buildelési folyamat konzolkimenete hibákat (buildelési hibát) vagy figyelmeztetéseket tartalmazhat. A build figyelmeztetések tartalmazhatnak hibás kis- és nagybetű használatot az objektumnevekben, valamint más testre szabható ajánlott eljárásokat, de nem szakítják meg a build folyamatot.
A buildelési folyamat összetevőkimenete egy .dacpac fájl, amely a bin/Debug mappában alapértelmezett beállításokkal rendelkező buildekhez található.
Deployment
A kimeneti fájl, a .dacpachatékony, újrafelhasználható és deklaratív összetevő. Ezzel a fájllal az SqlPackage vagy más eszközökkel az adatbázis kódját egy adatbázisra alkalmazhatjuk. A .dacpac üzembe helyezéséhez az SqlPackage parancs a publikálási parancs.
Például sqlpackage /Action:Publish /SourceFile:yourfile.dacpac /TargetConnectionString:{yourconnectionstring}.
Új adatbázisok
Az SqlPackage az objektumkapcsolatok között navigálva hozza létre az egyes objektumokat a megfelelő sorrendben, amikor egy dacpacot tesz közzé egy új adatbázisban. Például az SqlPackage először a Table_A-t hozza létre a Table_B előtt, amikor a Table_B idegen kulccsal hivatkozik a Table_A-ra.
Nem szeretne sql-szkriptek teljes mappáját végrehajtani, különösen akkor, ha olyan SQL-projekteket használhat, amelyek az objektumkapcsolatok alapján automatikusan végrehajtják az egyes T-SQL-szakaszokat a megfelelő sorrendben.
Meglévő adatbázisok
Amellett, hogy az objektumhierarchiát új adatbázisokban való közzétételkor navigálja, a .dacpac közzétételi folyamat a forrás .dacpac és a céladatbázis közötti különbséget is kiszámítja, mielőtt meghatározza, hogy milyen lépéseket kell tennie az adatbázis frissítéséhez. Ha például Table_C hiányzik két oszlop az SQL-projektben található adatbázisból, és StoredProcedure_A módosult, az SqlPackage egy ALTER TABLE utasítást és egy ALTER PROCEDURE utasítást hoz létre ahelyett, hogy vakon próbálna létrehozni egy csomó objektumot.
A közzétételi parancs által a meglévő adatbázisokra biztosított rugalmasság nem korlátozódik egyetlen adatbázisra. Egy .dacpac több alkalommal is üzembe helyezhető, például száz adatbázisból álló flotta frissítésekor.
Mikor érdemes használni?
Az SQL-adatbázisprojektek kiválóan alkalmasak olyan csapatok számára, amelyek szeretnék integrálni az adatbázis-fejlesztést egy CI/CD-munkafolyamatba. Az SQL-projektek deklaratív jellege lehetővé teszi az adatbázisséma egyetlen igazságforrását, a buildelési és közzétételi folyamat pedig ismétlődő és megbízható módot kínál a módosítások adatbázisokban való üzembe helyezésére.
Az SQL-adatbázisprojektek az adatbázisállapot igazságforrásának nyomon követésére szolgálnak, beleértve az objektum-relációs leképezővel (ORM) való fejlesztést is, például az EF Core-t. Grafikus eszköz vagy parancssor használatával kinyerheti az adatbázis sémáját egy SQL-projektbe, függetlenül az adatbázis létrehozásához használt ORM-től.
Az SQL Database-projektek támogatják az SQL Server és az Azure SQL-adatbáziscsaládot, beleértve az Azure SQL Database-t és az Azure Synapse Analyticset. Akár alkalmazást, akár adattárházat fejleszt, az SQL-adatbázisprojektek segítségével kezelheti az adatbázis sémáját. Az SQL-projektek a Visual Studio és a Visual Studio Code eszközeiből fejleszthetők.
Eredeti projektek és SDK-stílusú projektek
A Microsoft.Build.Sql SDK-stílusú projektformátum a .NET Core-ban bevezetett új SDK-stílusú projekteken alapul, és a VS Code SQL Database Projects bővítménye és az SQL Database in Fabric integrált forrásvezérlője által használt formátum. A Microsoft.Build.Sql-projektek az EREDETI SQL-projektformátumot cserélik le az MSBuild (.NET-keretrendszer) alapján.
Megjegyzés:
A Visual Studio 2026 csak az eredeti SQL-projektformátumot támogatja. Az SDK-stílusú SQL-projektek előzetes verzióban érhetők el a Visual Studio 2022-ben, és általánosan elérhetők a VS Code-ban. További információ az SQL-projektek eszközeiről.
Az új fejlesztési munka során érdemes megfontolni a Microsoft.Build.Sql-projektek használatát, mivel az SDK-stílusú projektek a jövőben támogatott formátumok. Az SDK-stílusú projektformátum rugalmasabb, és az eredeti SQL-projektekhez nem elérhető új funkciókat tartalmaz:
- .NET 8+ támogatás (platformfüggetlen)
- NuGet--csomaghivatkozások adatbázis-hivatkozásokhoz
- A projektben .sql fájlok alapértelmezett globbing mintázata
Az SDK-stílusú projektek az eredeti SQL-projektek funkcióinak szuperhalmazával rendelkeznek, és a meglévő SQL-projektek SDK-stílusú projektekké alakíthatók a projektfájl módosításával.
A funkciólefedettség alól kivételt képeznek az SQLCLR-objektumok támogatása, amelyek az eredeti és az SDK-stílusú SQL-projektekben is támogatottak, de .NET-keretrendszert igényelnek. Az SQLCLR-objektumokat tartalmazó eredeti SQL-projekt átalakítható SDK-stílusú projektté, de a projekt létrehozásához .NET helyett .NET-keretrendszerre van szükség. Miután elkészült az SQLCLR-objektummal rendelkező projekt, a .dacpac az SqlPackage-tal a .NET-en és a .NET-keretrendszeren is üzembe helyezhető, és .dacpac-referenciaként használható egy projektben (ugyanaz az adatbázis vagy ugyanazon kiszolgáló eltérő adatbázisa).
Kapcsolódó tartalom
- Project-Oriented offline adatbázis-fejlesztés
- SQL Database Projects bővítmény
- SqlPackage
- SQL-projektekhez készült CI-/CD-mintafolyamatok
- GitHub sql-action
- Azure DevOps SQL-telepítések
- adatrétegű alkalmazások (DAC) áttekintése
- DacFx visszajelzési adattár
- Sql Database-projektek használatának első lépései
- oktatóanyag: SQL-projekt létrehozása és üzembe helyezése