Aan de slag met SQL-databaseprojecten
Van toepassing op: SQL Server 2022 (16.x)
Azure SQL Database
Azure SQL Managed Instance
SQL-database in Microsoft Fabric
Een SQL-databaseproject is een lokale weergave van SQL-objecten die deel uitmaken van het schema voor één database, zoals tabellen, opgeslagen procedures of functies. Met de ontwikkelingscyclus van een SQL-databaseproject kan databaseontwikkeling worden geïntegreerd in een CI/CD-werkstroom (continue integratie en continue implementatie) die bekend zijn als een aanbevolen procedure voor ontwikkeling.
In dit artikel wordt stapsgewijs uitgelegd hoe u een nieuw SQL-project maakt, objecten toevoegt aan het project en het project bouwt en implementeert. Met uitzondering van de instructies voor Visual Studio (SQL Server Data Tools) richt de handleiding zich op SQL-projecten in DE SDK-stijl.
- Een nieuw project maken
- Objecten toevoegen aan het project
- Het project bouwen
- Het project implementeren
Voorwaarden
# install SqlPackage CLI
dotnet tool install -g Microsoft.SqlPackage
# install Microsoft.Build.Sql.Templates
dotnet new install Microsoft.Build.Sql.Templates
Notitie
Als u de implementatie van een SQL-databaseproject wilt voltooien, hebt u toegang nodig tot een Azure SQL- of SQL Server-exemplaar. U kunt lokaal gratis ontwikkelen met SQL Server Developer Edition in Windows of in containers.
Stap 1: Een nieuw project maken
We beginnen ons project door een nieuw SQL-databaseproject te maken voordat we er handmatig objecten aan toevoegen. Er zijn andere manieren om een project te maken waarmee het project direct kan worden gevuld met objecten uit een bestaande database, zoals het gebruik van de hulpprogramma's voor schemavergelijking.
Selecteer Bestand, Nieuwen Project.
Gebruik in het dialoogvenster Nieuw project de term SQL Server- in het zoekvak. Het bovenste resultaat moet worden SQL Server Database Project.
Selecteer Volgende om door te gaan naar de volgende stap. Geef een projectnaam op die niet overeenkomt met een databasenaam. Controleer en wijzig de projectlocatie indien nodig.
Selecteer en kies om het project aan te maken. Het lege project wordt geopend en is zichtbaar in de Solution Explorer voor bewerking.
Selecteer Bestand, Nieuw, en vervolgens Project.
Gebruik in het dialoogvenster Nieuw project de term SQL Server- in het zoekvak. Het beste resultaat moet SQL Server Database Project, SDK-achtige stijl (preview).
Selecteer Volgende om door te gaan naar de volgende stap. Geef een projectnaam op die niet overeenkomt met een databasenaam. Controleer en wijzig de projectlocatie indien nodig.
Selecteer Creëer om het project te maken. Het lege project wordt geopend en is zichtbaar in de Solution Explorer om te bewerken.
Selecteer in de databaseprojecten weergave van VS Code of Azure Data Studio de knop Nieuw project.
De eerste prompt bepaalt welke projectsjabloon moet worden gebruikt, voornamelijk op basis van of het doelplatform SQL Server of Azure SQL is. Als u wordt gevraagd om een specifieke versie van SQL te selecteren, kiest u de versie die overeenkomt met de doeldatabase, maar als de doeldatabaseversie onbekend is, kiest u de meest recente versie, omdat de waarde later kan worden gewijzigd.
Voer een projectnaam in de tekstinvoer in die wordt weergegeven. Deze naam hoeft niet overeen te komen met een databasenaam.
Selecteer in het dialoogvenster "Een map selecteren" dat wordt weergegeven, een map waar de projectmap, het .sqlproj
-bestand en andere inhoud opgeslagen moeten worden.
Wanneer u wordt gevraagd of u een SDK-project wilt maken, selecteert u Ja.
Zodra het project is voltooid, wordt het lege project geopend en zichtbaar in de databaseprojecten weergave voor bewerking.
Als de .NET-sjablonen voor Microsoft.Build.Sql-projecten zijn geïnstalleerd, kunt u vanaf de opdrachtregel een nieuw SQL-databaseproject maken. De -n
-optie geeft de naam van het project op en de -tp
optie geeft het projectdoelplatform op.
Gebruik de optie -h
om alle beschikbare opties weer te geven.
# install Microsoft.Build.Sql.Templates
dotnet new sqlproject -n MyDatabaseProject
Stap 2: Objecten toevoegen aan het project
Klik in Solution Explorermet de rechtermuisknop op het projectknooppunt en selecteer toevoegen en Tabel. Het dialoogvenster Nieuw item toevoegen wordt weergegeven, waarin u de tabelnaam kunt opgeven. Selecteer toevoegen om de tabel in het SQL-project te maken.
De tabel wordt geopend in de Visual Studio-ontwerptool voor tabellen met de sjabloon voor tabeldefinities, waar u kolommen, indexen en andere tabeleigenschappen kunt toevoegen. Sla het bestand op wanneer u klaar bent met het maken van de eerste bewerkingen.
U kunt meer databaseobjecten toevoegen via het dialoogvenster Nieuw item toevoegen, zoals weergaven, opgeslagen procedures en functies. Open het dialoogvenster door met de rechtermuisknop op het projectknooppunt in Solution Explorer te klikken en Toevoegente selecteren en vervolgens het gewenste objecttype te selecteren. Bestanden in het project kunnen worden ingedeeld in mappen via de optie Nieuwe map onder Toevoegen.
Klik in Solution Explorer-met de rechtermuisknop op het projectknooppunt en selecteer toevoegen en nieuw item. Het dialoogvenster Nieuw item toevoegen wordt weergegeven, selecteer Alle sjablonen weergeven en tabel. Geef de tabelnaam op als bestandsnaam en selecteer Toevoegen om de tabel in het SQL-project te maken.
De tabel wordt geopend in de Visual Studio-query-editor met de definitie van de sjabloon, waar u kolommen, indexen en andere tabeleigenschappen kunt toevoegen. Sla het bestand op wanneer u klaar bent met het maken van de eerste bewerkingen.
U kunt meer databaseobjecten toevoegen via het dialoogvenster Nieuw item toevoegen, zoals weergaven, opgeslagen procedures en functies. Open het dialoogvenster door met de rechtermuisknop op het projectknooppunt in Solution Explorer te klikken en toevoegen te selecteren en vervolgens het gewenste objecttype na Alle sjablonen weergeven. Bestanden in het project kunnen worden ingedeeld in mappen via de optie Nieuwe map onder Toevoegen.
Klik in de databaseprojecten weergave van VS Code of Azure Data Studio met de rechtermuisknop op het projectknooppunt en selecteer Tabel toevoegen. Geef in het dialoogvenster dat wordt weergegeven de tabelnaam op.
De tabel wordt geopend in de teksteditor met de sjabloontabeldefinitie, waar u kolommen, indexen en andere tabeleigenschappen kunt toevoegen. Sla het bestand op wanneer u klaar bent met het maken van de eerste bewerkingen.
Meer databaseobjecten kunnen worden toegevoegd via het contextmenu op het projectknooppunt, zoals weergaven, opgeslagen procedures en functies. Open het dialoogvenster door met de rechtermuisknop te klikken op het projectknooppunt in Database Projects weergave van VS Code of Azure Data Studio en vervolgens het gewenste objecttype. Bestanden in het project kunnen worden ingedeeld in mappen via de optie Nieuwe map onder Toevoegen.
Bestanden kunnen aan het project worden toegevoegd door ze te maken in de projectmap of genestelde mappen. De bestandsextensie moet worden ingesteld op .sql
en het wordt aanbevolen om te organiseren op basis van objecttype of schema en objecttype.
De basissjabloon voor een tabel kan worden gebruikt als uitgangspunt voor het maken van een nieuw tabelobject in het project:
CREATE TABLE [dbo].[Table1]
(
[Id] INT NOT NULL PRIMARY KEY
);
Stap 3: Het project bouwen
Het buildproces valideert de relaties tussen objecten en de syntaxis voor het doelplatform dat is opgegeven in het projectbestand. De artefactuitvoer van het buildproces is een .dacpac
-bestand, dat kan worden gebruikt om het project te implementeren in een doeldatabase en het gecompileerde model van het databaseschema bevat.
Klik in Solution Explorermet de rechtermuisknop op het projectknooppunt en selecteer Build.
Het uitvoervenster wordt automatisch geopend om het buildproces weer te geven. Als er fouten of waarschuwingen zijn, worden deze weergegeven in het uitvoervenster. Bij een geslaagde build wordt het buildartefact (.dacpac
-bestand) gemaakt en wordt de locatie ervan opgenomen in de build-uitvoer (standaard is bin\Debug\projectname.dacpac
).
Klik in Solution Explorermet de rechtermuisknop op het projectknooppunt en selecteer Build.
Het uitvoervenster wordt automatisch geopend om het buildproces weer te geven. Als er fouten of waarschuwingen zijn, worden deze weergegeven in het uitvoervenster. Bij een geslaagde build wordt het buildartefact (.dacpac
-bestand) gemaakt en wordt de locatie ervan opgenomen in de build-uitvoer (standaard is bin\Debug\projectname.dacpac
).
Klik in de databaseprojecten weergave van VS Code of Azure Data Studio met de rechtermuisknop op het projectknooppunt en selecteer Build.
Het uitvoervenster wordt automatisch geopend om het buildproces weer te geven. Als er fouten of waarschuwingen zijn, worden deze weergegeven in het uitvoervenster. Bij een geslaagde build wordt het buildartefact (.dacpac
-bestand) gemaakt en wordt de locatie ervan opgenomen in de build-uitvoer (standaard is bin/Debug/projectname.dacpac
).
SQL-databaseprojecten kunnen worden gebouwd vanaf de opdrachtregel met behulp van de opdracht dotnet build
.
dotnet build
# optionally specify the project file
dotnet build MyDatabaseProject.sqlproj
De build-uitvoer bevat eventuele fouten of waarschuwingen en de specifieke bestanden en regelnummers waar ze optreden. Bij een geslaagde build wordt het buildartefact (.dacpac
-bestand) gemaakt en wordt de locatie ervan opgenomen in de build-uitvoer (standaard is bin/Debug/projectname.dacpac
).
Stap 4: Het project implementeren
Het gecompileerde model van een databaseschema in een .dacpac
-bestand kan worden geïmplementeerd in een doeldatabase met behulp van het SqlPackage
opdrachtregelprogramma of andere implementatiehulpprogramma's. Het implementatieproces bepaalt de benodigde stappen om de doeldatabase bij te werken zodat deze overeenkomt met het schema dat is gedefinieerd in het .dacpac
, het maken of wijzigen van objecten indien nodig op basis van de objecten die al in de database aanwezig zijn. Als gevolg hiervan is het implementatieproces idempotent, wat betekent dat het meerdere keren kan worden uitgevoerd zonder problemen te veroorzaken en u kunt dezelfde .dacpac
implementeren in meerdere databases zonder de status vooraf te hoeven bepalen.
Klik in Solution Explorermet de rechtermuisknop op het projectknooppunt en selecteer Publiceren....
Het publicatiedialoogvenster wordt geopend, waar u de doeldatabaseverbinding tot stand brengt. Als u geen bestaand SQL-exemplaar hebt voor implementatie, wordt LocalDB ((localdb)\MSSQLLocalDB
) geïnstalleerd met Visual Studio en kan worden gebruikt voor testen en ontwikkelen.
Geef een databasenaam op en selecteer Publiceren om het project te implementeren in de doeldatabase of Script genereren om een script te genereren dat moet worden beoordeeld voordat u het uitvoert.
Klik in Solution Explorermet de rechtermuisknop op het projectknooppunt en selecteer Publiceren....
Het publicatiedialoogvenster wordt geopend, waar u de doeldatabaseverbinding tot stand brengt. Als u geen bestaand SQL-exemplaar hebt voor implementatie, wordt LocalDB ((localdb)\MSSQLLocalDB
) geïnstalleerd met Visual Studio en kan worden gebruikt voor testen en ontwikkelen.
Geef een databasenaam op en selecteer Publiceren om het project te implementeren in de doeldatabase of Script genereren om een script te genereren dat moet worden beoordeeld voordat u het uitvoert.
Klik in de Databaseprojecten-weergave van VS Code of Azure Data Studio met de rechtermuisknop op het projectknooppunt en selecteer Publiceren.
Tip
Als u geen beschikbaar SQL-exemplaar hebt voor implementatie, kan de SQL Database Projects-extensie een lokaal SQL Server-exemplaar voor u maken in een nieuwe container. Wanneer een containerruntime zoals Docker Desktop wordt uitgevoerd, selecteert u Publiceren naar een nieuwe lokale sql-serverontwikkelingscontainer in de vervolgkeuzelijst.
Als u een bestaand SQL-exemplaar hebt voor implementatie, selecteert u Publiceren naar een bestaande SQL-server en gebruik geen profiel als u om een publicatieprofiel wordt gevraagd.
Als u geen verbinding met een doeldatabase hebt geconfigureerd, wordt u gevraagd een nieuwe verbinding te maken. De nieuwe verbindingsinvoer vraagt om de servernaam, verificatiemethode en databasenaam.
Nadat de verbinding is geconfigureerd, wordt het implementatieproces gestart. U kunt ervoor kiezen om de implementatie automatisch uit te voeren (publiceren) of een script te genereren dat moet worden beoordeeld voordat u een script uitvoert (script genereren).
De SQLPackage CLI wordt gebruikt voor het implementeren van een .dacpac
bestand in een doeldatabase met de publicatieactie.
Als u bijvoorbeeld een .dacpac
-bestand wilt implementeren in een doeldatabase op basis van een verbindingsreeks:
sqlpackage /Action:Publish /SourceFile:bin/Debug/projectname.dacpac /TargetConnectionString:{yourconnectionstring}