Delen via


"Database DevOps (preview)" in "SQL Server Management Studio"

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. De ontwikkelingscyclus van een SQL-databaseproject helpt u bij het integreren van databaseontwikkeling in CI/CD-werkstromen (continue integratie en continue implementatie) die bekend zijn als aanbevolen procedures voor ontwikkeling. In SSMS kunt u projecten in preview gebruiken Microsoft.Build.Sql om u te helpen bij het implementeren, beheren en samenwerken aan databasewijzigingen door een lokale definitie van de databaseobjecten op te geven.

In dit artikel wordt beschreven hoe u SQL-databaseprojecten gebruikt in SQL Server Management Studio (SSMS) als onderdeel van of om DevOps-werkstromen voor databases te verankeren. Zie SQL Database-projecten voor meer informatie over SQL-databaseprojecten.

Vereiste voorwaarden

Een nieuw project maken

Als u wilt werken met SQL-databaseprojecten in SSMS, hebt u een lokale map met uw projectbestanden nodig. U kunt een project starten door objecten uit een bestaande database te extraheren of door nieuwe objectbestanden helemaal opnieuw te maken.

Schermopname van het dialoogvenster Nieuw project in SQL Server Management Studio.

Opmerking

SSMS kan u vragen verbinding te maken met een server bij het openen van een bestand vanuit Solution Explorer. U kunt de ontwikkeling van SQL Database-projecten offline uitvoeren zonder verbinding te maken met een database.

Objecten uit een bestaande database toevoegen

Gebruik SqlPackage om het schema uit een bestaande database te extraheren in afzonderlijke .sql bestanden die zijn ingedeeld op objecttype. Voer de volgende opdracht uit om een mapstructuur te maken met uw databaseobjecten:

sqlpackage /Action:Extract /SourceConnectionString:"<connection-string>" /TargetFile:"<temp-folder>" /p:ExtractTarget=SchemaObjectType

De /p:ExtractTarget=SchemaObjectType parameter organiseert de geëxtraheerde bestanden in submappen op basis van schema en objecttype (bijvoorbeeld dbo/Tables, dbo/StoredProcedures). Pak uit naar een tijdelijke map buiten uw projectmap, en gebruik vervolgens Windows Verkenner om de gewenste inhoud naar uw projectmap te kopiëren.

Zie SqlPackage-extract voor meer informatie over opties voor het extraheren van SqlPackage.

Nieuwe objecten maken

Voeg nieuwe databaseobjecten toe aan uw project door .sql bestanden in de projectmap te maken. Elk bestand moet één CREATE instructie voor één databaseobject bevatten. Bijvoorbeeld een tabeldefinitie:

CREATE TABLE [dbo].[Products]
(
    [ProductId] INT NOT NULL PRIMARY KEY,
    [ProductName] NVARCHAR (100) NOT NULL,
    [Price] DECIMAL (10, 2) NOT NULL
);

Bestanden ordenen op schema en objecttype met behulp van submappen, zoals dbo/Tables of Sales/StoredProcedures. Deze structuur komt overeen met de uitvoer van SqlPackage-extract en maakt het gemakkelijker om objecten te vinden naarmate uw project groeit. Het buildproces van het SQL-project bevat standaard alle .sql bestanden in de projectmap en de bijbehorende submappen.

SSMS biedt sjablonen voor algemene items om u te helpen aan de slag te gaan. Als u een nieuw item wilt toevoegen, klikt u met de rechtermuisknop op het project in Solution Explorer, selecteert uNieuw item> en kiest u uit de lijst met SQL-objectsjablonen.

Bestaande projecten openen

Als u een bestaand SQL-databaseproject in SSMS wilt openen, selecteert u Bestand>openen>project/oplossing en navigeert u naar het .sqlproj bestand.

Belangrijk

SSMS ondersteunt alleen SDK-stijl Microsoft.Build.Sql projecten. De minimaal ondersteunde SDK-versie is 2.1.0. Als u een oorspronkelijk SQL-project hebt gemaakt in Visual Studio, moet u het naar het SDK-stijl formaat converteren voordat u het opent.

Zie Een origineel SQL-project converteren naar een SDK-project voor hulp bij het converteren van oorspronkelijke SQL-projecten naar de SDK-indeling.

Projecten bouwen en wijzigingen implementeren

De SQL-projectwerkstroom bestaat uit twee hoofdstappen: het bouwen van het project voor het valideren en compileren van het schema en het implementeren van de gecompileerde uitvoer naar een doeldatabase.

Project bouwen

Het bouwen van een SQL-project valideert de relaties tussen objecten en controleert de T-SQL-syntaxis op het opgegeven doelplatform. Het buildproces produceert een .dacpac bestand dat een gecompileerd model van het databaseschema bevat.

Als u een project wilt bouwen in SSMS, klikt u met de rechtermuisknop op het project in Solution Explorer en selecteert u Bouwen.

Schermopname van Solution Explorer met de optie voor het bouwen van SQL-projecten.

In de build-uitvoer worden eventuele fouten of waarschuwingen weergegeven. Fouten geven problemen aan die implementatie voorkomen, zoals een weergave die verwijst naar een tabel die niet bestaat. Waarschuwingen markeren mogelijke problemen, zoals inconsistent lettergebruik in objectnamen.

Bij een geslaagde build wordt het .dacpac bestand gemaakt in de bin\Debug map in de projectmap.

Zie Build-fouten in SQL-project oplossen voor meer informatie over het oplossen van buildproblemen.

Wijzigingen implementeren

Nadat u uw project hebt gemaakt, implementeert u de .dacpac in een doeldatabase met behulp van het dialoogvenster Publiceren in SSMS. Het implementatieproces vergelijkt de .dacpac met de doeldatabase en genereert de benodigde CREATE, ALTERof DROP instructies om de database te synchroniseren met uw project.

Als u wilt implementeren, klikt u met de rechtermuisknop op het project in Solution Explorer en selecteert u Publiceren. Configureer uw doeldatabaseverbinding in het dialoogvenster Publiceren en selecteer Publiceren om wijzigingen toe te passen of Script genereren om het implementatiescript te controleren vóór de uitvoering.

Schermopname van het dialoogvenster Publiceren voor het implementeren van wijzigingen in SQL Database-projecten.

Het publicatieproces is idempotent, zodat u hetzelfde .dacpac meerdere keren kunt implementeren zonder problemen te veroorzaken. Met deze benadering kunt u implementeren in meerdere omgevingen (ontwikkeling, fasering, productie) met behulp van hetzelfde gecompileerde artefact.

Zie Aan de slag met SQL-databaseprojecten voor gedetailleerde informatie over implementatieopties en configuratie.