Overzicht van schemavergelijking

van toepassing op:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceSQL-database in Microsoft Fabric

Met de hulpprogramma's voor schemavergelijking kunt u twee databasedefinities vergelijken. U kunt elke combinatie van verbonden database, SQL-databaseproject of .dacpac bestand gebruiken als de bron en het doel van de vergelijking. Wanneer de vergelijking is voltooid, ziet u de resultaten als een set acties die het doel hetzelfde maken als de bron. Verschillen tussen de databasemodellen worden op een vergelijkbare manier weergegeven als een bronbeheerverschil. Als het doel voor het vergelijken van schema's een SQL-project of een database is, kunt u het doel rechtstreeks bijwerken vanuit de interface voor schema vergelijken of een updatescript genereren dat hetzelfde effect heeft.

Schermopname van verschillen tussen een pakket en database als concept.

Schema vergelijken biedt de volgende functies:

  • Vergelijk schema's tussen twee .dacpac bestanden, databases of SQL-projecten.
  • Resultaten weergeven als een set acties die overeenkomen met een doel ten opzichte van de bron.
  • Selectief acties uitsluiten die in de resultaten worden vermeld.
  • Stel opties in die de reikwijdte van de vergelijking bepalen.
  • Pas wijzigingen rechtstreeks toe op het doel of genereer een script om wijzigingen op een later tijdstip toe te passen.
  • Sla de vergelijking op.

Functionality

De verschillen tussen bron en doel worden weergegeven in een raster voor een eenvoudige beoordeling. U kunt in beide richtingen vergelijken tussen een databasemodel dat is afgeleid van een van de volgende opties:

  • aangesloten database
  • SQL-databaseproject
  • .dacpac-bestand

Bij het vergelijken van schema's kunt u inzoomen en elk verschil in het resultatenraster of in scriptvorm bekijken waar details van de wijzigingen beschikbaar zijn op regelniveau. U kunt ook selectief specifieke verschillen uitsluiten voordat u het doel bijwerkt. De hulpprogramma's voor schemavergelijking zijn beschikbaar in Visual Studio, Visual Studio Code en de opdrachtregel.

Opties voor schemavergelijking

De schemavergelijkingsopties zijn gebaseerd op de implementatieopties die beschikbaar zijn in de DacFx .NET-bibliotheek. Deze opties zijn onder andere:

  • Witruimte negeren
  • Partitieschema's negeren
  • Kolomvolgorde negeren
  • Indexen die niet in de bron staan verwijderen
  • Blokkeren bij mogelijk gegevensverlies

U kunt ook de objecttypen configureren die zijn opgenomen in de vergelijking. Deze objecten omvatten tabellen, opgeslagen procedures, indexen, machtigingen, door de gebruiker gedefinieerde typen en meer.

Bestanden voor schema-vergelijkingen

U kunt de vergelijkingsdefinitie voor schemavergelijking opslaan als een .scmp bestand, ook wel een schemavergelijkingsbestand genoemd. Dit bestand slaat informatie op over de schemavergelijking in XML en bevat:

  • Bron- en doelverbindingsgegevens
  • Vergelijkingsopties
  • Uitgesloten objecttypen

U kunt een .scmp bestand in Visual Studio openen om dezelfde vergelijking later opnieuw uit te voeren of om de vergelijking met anderen te delen.

Schema-vergelijking starten en gebruiken

  1. Selecteer SQL Server in het menu Extra in Visual Studio en selecteer vervolgens Nieuwe schemavergelijking.

    U kunt ook met de rechtermuisknop op het TradeDev-project in Solution Explorer klikken en Schema vergelijken selecteren.

    Het venster Schema vergelijken wordt geopend en Visual Studio wijst deze automatisch een naam toe, zoals SqlSchemaCompare1.

    Twee vervolgkeuzelijsten met een groene pijl ertussen worden net onder de werkbalk Venster Schema vergelijken weergegeven. Met deze menu's kunt u databasedefinities selecteren voor uw vergelijkingsbron en doel.

  2. In de vervolgkeuzelijst Bron selecteren, kies Bron selecteren en het dialoogvenster Bronschema selecteren wordt geopend.

    Als u het venster Schema vergelijken opent door met de rechtermuisknop op de projectnaam te klikken, is het bronschema al ingevuld en kunt u doorgaan met stap 4.

    Schermopname van het dialoogvenster Schemavergelijkingsbron selecteren in Visual Studio.

  3. Voltooi de selecties voor een schemavergelijkingsbron door een Project-, Database-verbinding of DACPAC-bestand te kiezen. De bron is de databasedefinitie die u wilt gebruiken als basis voor wijzigingen in het doel.

  4. Kies in de vervolgkeuzelijst Doel selecteren in het venster Schemavergelijking de optie Doel selecteren. Het dialoogvenster Doelschema selecteren wordt geopend. Voltooi de selecties voor een schemavergelijkingsdoel door een Project-, Database-verbinding of DACPAC-bestand te kiezen. Het doel is de databasedefinitie waarop u wijzigingen wilt evalueren en toepassen.

  5. Selecteer Opties in de werkbalk Venster Schema vergelijken om op te geven welke objecten worden vergeleken, welke typen verschillen worden genegeerd en andere instellingen.

  6. Selecteer de knop Vergelijken in de werkbalk Venster Schema vergelijken om het vergelijkingsproces te starten.

    Wanneer de vergelijking is voltooid, worden de structurele verschillen tussen het project en de database weergegeven in het deelvenster Resultaten in het bovenste gedeelte van het venster. De vergelijkingsresultaten worden standaard gegroepeerd op actie (zoals Verwijderen, Wijzigen of Toevoegen). In het deelvenster Resultaten wordt een rij weergegeven voor elk databaseobject dat verschilt tussen de databasedefinities. Elke rij identificeert het object in het bron- of doelschema (of beide) en de actie die in het doelschema wordt uitgevoerd om het doelobject hetzelfde te maken als het bronobject. Als een object is geherstructureerd en de naam ervan is gewijzigd of verplaatst naar een nieuw schema, zijn de bron- en doelnamen verschillend en wordt de bronnaam vet weergegeven om het verschil te markeren.

    Schermopname van de interface voor schemavergelijking in Visual Studio die een database vergelijkt met een project.

    De lijst met resultaten verbergt standaard objecten die hetzelfde zijn in beide schema's of die niet worden ondersteund voor update, zoals ingebouwde objecten. Selecteer de juiste filteropties op de werkbalk om deze objecten weer te geven.

    Als u de groeperingsvoorkeur wilt wijzigen, selecteert u de vervolgkeuzelijst Groepsresultaten op de werkbalk. Selecteer Type om de resultaten te groeperen op objecttype (bijvoorbeeld op tabellen, weergaven of opgeslagen procedures).

  7. Standaard worden alle verschillen opgenomen in het bereik van de actie Doel bijwerken. U kunt verschillen uitsluiten die u niet wilt synchroniseren. Verwijder het vinkje in de actiekolom in het midden van elke rij. U kunt ook met de rechtermuisknop op een rij in het deelvenster Schema klikken en Uitsluiten selecteren. De rij wordt onmiddellijk grijs weergegeven. Wanneer schema's worden vergeleken om de doeldatabase bij te werken, wordt deze rij niet in aanmerking genomen voor wijzigingen die in behandeling zijn.

    U kunt ook met de rechtermuisknop op een groepsrij klikken en Alles uitsluiten of Alles opnemen selecteren, wat gelijk is aan het uitschakelen of controleren van alle verschillen in die groep. Wanneer u resultaten groepeert op schema, kunt u met de rechtermuisknop op de groepsrij klikken om alle wijzigingen in een specifiek schema op te nemen of uit te sluiten.

    Als de uitgesloten rij afhankelijke objecten bevat (bijvoorbeeld een tabelrij waarnaar wordt verwezen door een weergaverij ), is de uitgesloten rij uitgeschakeld, maar het bijbehorende selectievakje is niet uitgeschakeld. Zodra alle rijen die ervan afhankelijk zijn, zijn uitgeschakeld, wordt de uitgeschakelde rij uitgeschakeld. Bovendien, als een rij is geherstructureerd (hernoemd of verplaatst naar een ander schema), wordt het selectievakje uitgeschakeld voor die rij en een van de afhankelijke onderliggende rijen.

    Als u de vergelijking vernieuwt, worden deze verschillen die u hebt overgeslagen genegeerd.

Als u het schema van het doel wilt bijwerken, hebt u twee opties. U kunt het doel rechtstreeks bijwerken vanuit het venster Schema vergelijken als het doel een database of project is, of u kunt een updatescript genereren als het doel een database of een databasebestand is. Er wordt een gegenereerd script weergegeven in de Transact-SQL Editor, waaruit u het script kunt inspecteren en uitvoeren op een database.

Note

Grafische schemavergelijking is gedeeltelijk beschikbaar in de preview-versie van SQL-projecten in SDK-stijl in Visual Studio. Schemavergelijkingen zijn beschikbaar voor verbonden databases en .dacpac bestanden, SQL-databaseprojecten zijn nog niet beschikbaar.

  1. Selecteer SQL Server in het menu Extra in Visual Studio en selecteer vervolgens Nieuwe schemavergelijking.

    U kunt ook met de rechtermuisknop op het TradeDev-project in Solution Explorer klikken en Schema vergelijken selecteren.

    Het venster Schema vergelijken wordt geopend en Visual Studio wijst deze automatisch een naam toe, zoals SqlSchemaCompare1.

    Twee vervolgkeuzelijsten met een groene pijl ertussen worden net onder de werkbalk Venster Schema vergelijken weergegeven. Met deze menu's kunt u databasedefinities selecteren voor uw vergelijkingsbron en doel.

  2. In de vervolgkeuzelijst Bron selecteren, kies Bron selecteren en het dialoogvenster Bronschema selecteren wordt geopend.

    Als u het venster Schema vergelijken opent door met de rechtermuisknop op de projectnaam te klikken, is het bronschema al ingevuld en kunt u doorgaan met stap 4.

    Schermopname van het dialoogvenster Schemavergelijkingsbron selecteren in Visual Studio.

  3. Voltooi de selecties voor een schemavergelijkingsbron door een Project-, Database-verbinding of DACPAC-bestand te kiezen. De bron is de databasedefinitie die u wilt gebruiken als basis voor wijzigingen in het doel.

  4. Kies Doel selecteren in de vervolgkeuzelijst in het venster SchemavergelijkingDoel selecteren. Het dialoogvenster Doelschema selecteren wordt geopend. Voltooi de selecties voor een schemavergelijkingsdoel door een Project-, Database-verbinding of DACPAC-bestand te kiezen. Het doel is de databasedefinitie waarop u wijzigingen wilt evalueren en toepassen.

  5. Selecteer Opties in de werkbalk Venster Schema vergelijken om op te geven welke objecten worden vergeleken, welke typen verschillen worden genegeerd en andere instellingen.

  6. Selecteer de knop Vergelijken in de werkbalk Venster Schema vergelijken om het vergelijkingsproces te starten.

    Wanneer de vergelijking is voltooid, worden de structurele verschillen tussen het project en de database weergegeven in het deelvenster Resultaten in het bovenste gedeelte van het venster. De vergelijkingsresultaten worden standaard gegroepeerd op actie (zoals Verwijderen, Wijzigen of Toevoegen). In het deelvenster Resultaten wordt een rij weergegeven voor elk databaseobject dat verschilt tussen de databasedefinities. Elke rij identificeert het object in het bron- of doelschema (of beide) en de actie die in het doelschema wordt uitgevoerd om het doelobject hetzelfde te maken als het bronobject. Als een object is geherstructureerd en de naam ervan is gewijzigd of verplaatst naar een nieuw schema, zijn de bron- en doelnamen verschillend en wordt de bronnaam vet weergegeven om het verschil te markeren.

    Schermopname van de interface voor schemavergelijking in Visual Studio die een database vergelijkt met een project.

    De lijst met resultaten verbergt standaard objecten die hetzelfde zijn in beide schema's of die niet worden ondersteund voor update, zoals ingebouwde objecten. Selecteer de juiste filteropties op de werkbalk om deze objecten weer te geven.

    Als u de groeperingsvoorkeur wilt wijzigen, selecteert u de vervolgkeuzelijst Groepsresultaten op de werkbalk. Selecteer Type om de resultaten te groeperen op objecttype (bijvoorbeeld op tabellen, weergaven of opgeslagen procedures).

  7. Standaard worden alle verschillen opgenomen in het bereik van de actie Doel bijwerken. U kunt verschillen uitsluiten die u niet wilt synchroniseren. Verwijder het vinkje in de actiekolom in het midden van elke rij. U kunt ook met de rechtermuisknop op een rij in het deelvenster Schema klikken en Uitsluiten selecteren. De rij wordt onmiddellijk grijs weergegeven. Wanneer schema's worden vergeleken om de doeldatabase bij te werken, wordt deze rij niet in aanmerking genomen voor wijzigingen die in behandeling zijn.

    U kunt ook met de rechtermuisknop op een groepsrij klikken en Alles uitsluiten of Alles opnemen selecteren, wat gelijk is aan het uitschakelen of controleren van alle verschillen in die groep. Wanneer u resultaten groepeert op schema, kunt u met de rechtermuisknop op de groepsrij klikken om alle wijzigingen in een specifiek schema op te nemen of uit te sluiten.

    Als de uitgesloten rij afhankelijke objecten bevat (bijvoorbeeld een tabelrij waarnaar wordt verwezen door een weergaverij ), is de uitgesloten rij uitgeschakeld, maar het bijbehorende selectievakje is niet uitgeschakeld. Zodra alle rijen die ervan afhankelijk zijn, zijn uitgeschakeld, wordt de uitgeschakelde rij uitgeschakeld. Bovendien, als een rij is geherstructureerd (hernoemd of verplaatst naar een ander schema), wordt het selectievakje uitgeschakeld voor die rij en een van de afhankelijke onderliggende rijen.

    Als u de vergelijking vernieuwt, worden deze verschillen die u hebt gekozen om over te slaan genegeerd.

Als u het schema van het doel wilt bijwerken, hebt u twee opties. U kunt het doel rechtstreeks bijwerken vanuit het venster Schema vergelijken als het doel een database of project is, of u kunt een updatescript genereren als het doel een database of een databasebestand is. Er wordt een gegenereerd script weergegeven in de Transact-SQL Editor, waaruit u het script kunt inspecteren en uitvoeren op een database.

Meer uitgebreide informatie over schemavergelijking in Visual Studio Code is beschikbaar in het artikel Schema vergelijken

  1. Zoek in Visual Studio Code in het opdrachtpalet (ctrl/cmd+shift+P) naar MSSQL: Schema Compare.

    U kunt ook met de rechtermuisknop op een databaseproject klikken in de weergave Databaseprojecten of een database in Objectverkenner en Schema vergelijken selecteren.

    Schermopname van menu-item Schemavergelijking in Visual Studio Code-objectverkenner.

    Het venster Schema vergelijken wordt geopend en er kan een bron of doel zijn ingesteld op basis van het startpunt.

    Twee beletseltekenknoppen met een pijl ertussen verschijnen net onder de Schema Compare-vensterwerkbalk. Met deze menu's kunt u databasedefinities selecteren voor uw vergelijkingsbron en doel.

  2. Als u de knop met het beletselteken voor de bron of het doel selecteert, wordt een dialoogvenster geopend waarin elk beletselteken kan worden bijgewerkt. Voltooi de selecties voor een schemavergelijkingsbron door een Project-, Database-verbinding of DACPAC-bestand te kiezen. De bron is de databasedefinitie die u wilt gebruiken als basis voor wijzigingen in het doel. Het doel is de databasedefinitie waarop u wijzigingen wilt evalueren en toepassen.

    Schermopname van het dialoogvenster Schemavergelijkingsbron selecteren in Visual Studio Code.

    Zodra de selecties zijn voltooid, selecteert u OK om het dialoogvenster te sluiten en terug te keren naar het venster Schema vergelijken .

  3. U kunt ook de knop Opties in de werkbalk Venster Schema vergelijken selecteren om op te geven welke objecten worden vergeleken, welke typen verschillen worden genegeerd en andere instellingen.

  4. Selecteer de knop Vergelijken in de werkbalk Venster Schema vergelijken om het vergelijkingsproces te starten.

    Wanneer de vergelijking is voltooid, worden de structurele verschillen tussen het project en de database weergegeven in het deelvenster Resultaten in het bovenste gedeelte van het venster. De vergelijkingsresultaten worden standaard gegroepeerd op actie (zoals Verwijderen, Wijzigen of Toevoegen). In het deelvenster Resultaten wordt een rij weergegeven voor elk databaseobject dat verschilt tussen de databasedefinities. Elke rij identificeert het object in het bron- of doelschema (of beide) en de actie die in het doelschema wordt uitgevoerd om het doelobject hetzelfde te maken als het bronobject. Als een object is geherstructureerd en de naam ervan is gewijzigd of verplaatst naar een nieuw schema, zijn de bron- en doelnamen verschillend en wordt de bronnaam vet weergegeven om het verschil te markeren.

    Schermopname van de interface voor schemavergelijking in Visual Studio Code die een database vergelijkt met een project.

  5. Standaard worden alle verschillen opgenomen in het bereik van de actie Doel bijwerken. U kunt verschillen uitsluiten die u niet wilt synchroniseren. Verwijder het vinkje in de actiekolom in het midden van elke rij. Wanneer schema's worden vergeleken om de doeldatabase bij te werken, wordt deze rij niet in aanmerking genomen voor wijzigingen die in behandeling zijn.

    Als de uitgesloten rij afhankelijke objecten bevat (bijvoorbeeld een tabelrij waarnaar wordt verwezen door een weergaverij ), is de uitgesloten rij uitgeschakeld, maar het bijbehorende selectievakje is niet uitgeschakeld. Zodra alle rijen die ervan afhankelijk zijn, zijn uitgeschakeld, wordt de uitgeschakelde rij uitgeschakeld. Bovendien, als een rij is geherstructureerd (hernoemd of verplaatst naar een ander schema), wordt het selectievakje uitgeschakeld voor die rij en een van de afhankelijke onderliggende rijen.

    Als u de vergelijking vernieuwt, worden deze verschillen die u hebt gekozen om over te slaan genegeerd.

Als u het schema van het doel wilt bijwerken, hebt u twee opties. U kunt het doel rechtstreeks bijwerken vanuit het venster Schema vergelijken met de knop Toepassen als het doel een database of project is, of u kunt een updatescript genereren als het doel een database is met de knop Script genereren . Er wordt een gegenereerd script weergegeven in de Transact-SQL Editor, waaruit u het script kunt inspecteren en uitvoeren op basis van een database.

In SQL Server Management Studio kunt u het hulpprogramma Schema vergelijken gebruiken om databases, projecten of DACPAC-bestanden te vergelijken.

  1. Maak in SQL Server Management Studio verbinding met de database die u wilt vergelijken.

  2. Klik in de Objectverkenner met de rechtermuisknop op de database en selecteer Taken>Schemas vergelijken (preview).

  3. Voltooi in het venster Schema vergelijken de selecties voor een schemavergelijkingsdoel door een Project, databaseverbinding of .dacpac-bestand te kiezen.

  4. Selecteer Vergelijken om de vergelijking te starten.

    Wanneer de vergelijking is voltooid, worden de structurele verschillen tussen het project en de database weergegeven in het deelvenster Resultaten in het bovenste gedeelte van het venster. De vergelijkingsresultaten worden standaard gegroepeerd op actie (zoals Verwijderen, Wijzigen of Toevoegen). In het deelvenster Resultaten wordt een rij weergegeven voor elk databaseobject dat verschilt tussen de databasedefinities. Elke rij identificeert het object in het bron- of doelschema (of beide) en de actie die in het doelschema wordt uitgevoerd om het doelobject hetzelfde te maken als het bronobject. Als een object is geherstructureerd en de naam ervan is gewijzigd of verplaatst naar een nieuw schema, zijn de bron- en doelnamen verschillend en wordt de bronnaam vet weergegeven om het verschil te markeren.

  5. Standaard worden alle verschillen opgenomen in het bereik van de actie Doel bijwerken. U kunt verschillen uitsluiten die u niet wilt synchroniseren. Schakel hiervoor het selectievakje in de kolom Opnemen in elke rij uit. Wanneer schema's worden vergeleken om de doeldatabase bij te werken, wordt deze rij niet in aanmerking genomen voor wijzigingen die in behandeling zijn.

    Als de uitgesloten rij afhankelijke objecten bevat (bijvoorbeeld een tabelrij waarnaar wordt verwezen door een weergaverij ), is de uitgesloten rij uitgeschakeld, maar het bijbehorende selectievakje is niet uitgeschakeld. Zodra alle rijen die ervan afhankelijk zijn, zijn uitgeschakeld, wordt de uitgeschakelde rij uitgeschakeld.

    Als u de vergelijking vernieuwt, worden deze verschillen die u hebt gekozen om over te slaan genegeerd.

Als u het schema van het doel wilt bijwerken, hebt u twee opties. U kunt het doel rechtstreeks bijwerken vanuit het venster Schema vergelijken met de knop Toepassen als het doel een database of project is, of u kunt een updatescript genereren als het doel een database is met de knop Script genereren . Er wordt een gegenereerd script weergegeven in de Transact-SQL Editor, waaruit u het script kunt inspecteren en uitvoeren op een database.

Schema vergelijken is beschikbaar in SQL Server Management Studio, Visual Studio of via de MSSQL-extensie voor Visual Studio Code.