Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of mappen te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen om mappen te wijzigen.
van toepassing op:SQL Server
Azure SQL Database
Azure SQL Managed Instance
SQL-database in Microsoft Fabric
Met de hulpprogramma's voor schemavergelijking kunt u twee databasedefinities vergelijken, waarbij de bron en het doel van de vergelijking elke combinatie van verbonden database, SQL-databaseproject of .dacpac -bestand kunnen zijn. Zodra de vergelijking is voltooid, worden de resultaten van de vergelijking weergegeven als een set acties die het doel hetzelfde maken als de bron. Verschillen tussen de databasemodellen worden op een vergelijkbare manier gepresenteerd 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.
Schema vergelijken biedt de volgende functies:
- Vergelijk schema's tussen twee
.dacpacbestanden, 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 een vergelijking maken in beide richtingen 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, Azure Data Studio en de opdrachtregel.
Opties voor schemavergelijking
De opties voor schemavergelijking worden getrokken uit de implementatieopties die beschikbaar zijn in de DacFx .NET-bibliotheek. Deze opties zijn onder andere:
- witruimte negeren
- partitieschema's negeren
- kolomvolgorde negeren
- indexen verwijderen die niet in de bron zijn
- blokkeren bij mogelijk gegevensverlies
De objecttypen die zijn opgenomen in de vergelijking, kunnen ook worden geconfigureerd. Deze objecten omvatten tabellen, opgeslagen procedures, indexen, machtigingen, door de gebruiker gedefinieerde typen en meer.
Bestanden voor schema-vergelijkingen
De vergelijkingsdefinitie voor schemavergelijking kan worden opgeslagen 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
Een .scmp bestand kan worden geopend in Visual Studio of Azure Data Studio om dezelfde vergelijking later eenvoudig opnieuw uit te voeren of om de vergelijking met anderen te delen.
Schema-vergelijking starten en gebruiken
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.
In de vervolgkeuzelijst Bron selecteren, kies Bron selecteren en het dialoogvenster Bronschema selecteren wordt geopend.
Als u het venster Schema vergelijken hebt geopend door met de rechtermuisknop op de projectnaam te klikken, is het bronschema al ingevuld en kunt u doorgaan met stap 4.
Voltooi de selecties voor een schemavergelijkingsbron door een Project-, Database-verbinding of DACPAC-bestand te kiezen. De bron is een databasedefinitie die u wilt gebruiken als basis voor wijzigingen in het doel.
Van de vervolgkeuzelijst Select Target in het venster Schema vergelijken, kies Select Target en het dialoogvenster Selecteer Doelschema wordt geopend. Voltooi de selecties voor een schemavergelijkingsdoel door een Project-, Database-verbinding of DACPAC-bestand te kiezen. Het doel is een databasedefinitie waarop u wijzigingen wilt evalueren en toepassen.
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.
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 groeperen alle verschillen standaard 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.
De lijst met resultaten verbergt standaard objecten die hetzelfde zijn in beide schema's of die niet worden ondersteund voor update (bijvoorbeeld ingebouwde objecten). U kunt de juiste filterknoppen in de werkbalk selecteren 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).
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. In de Transact-SQL Editor wordt een gegenereerd script weergegeven, waarmee 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.
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.
In de vervolgkeuzelijst Bron selecteren, kies Bron selecteren en het dialoogvenster Bronschema selecteren wordt geopend.
Als u het venster Schema vergelijken hebt geopend door met de rechtermuisknop op de projectnaam te klikken, is het bronschema al ingevuld en kunt u doorgaan met stap 4.
Voltooi de selecties voor een schemavergelijkingsbron door een Project-, Database-verbinding of DACPAC-bestand te kiezen. De bron is een databasedefinitie die u wilt gebruiken als basis voor wijzigingen in het doel.
Van de vervolgkeuzelijst Select Target in het venster Schema vergelijken, kies Select Target en het dialoogvenster Selecteer Doelschema wordt geopend. Voltooi de selecties voor een schemavergelijkingsdoel door een Project-, Database-verbinding of DACPAC-bestand te kiezen. Het doel is een databasedefinitie waarop u wijzigingen wilt evalueren en toepassen.
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.
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. Standaard worden in de vergelijkingsresultaten alle verschillen 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.
De lijst met resultaten verbergt standaard objecten die hetzelfde zijn in beide schema's of die niet worden ondersteund voor update (bijvoorbeeld ingebouwde objecten). U kunt de juiste filterknoppen in de werkbalk selecteren 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).
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, is dit een handige manier 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. In de Transact-SQL Editor wordt een gegenereerd script weergegeven, waarmee 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
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.
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.
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 een databasedefinitie die u wilt gebruiken als basis voor wijzigingen in het doel. Het doel is een databasedefinitie waarop u wijzigingen wilt evalueren en toepassen.
Zodra de selecties zijn voltooid, selecteert u OK om het dialoogvenster te sluiten en terug te keren naar het venster Schema vergelijken .
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.
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. Standaard worden in de vergelijkingsresultaten alle verschillen 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 anders en wordt de bronnaam vet weergegeven om het verschil te markeren.
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 . In de Transact-SQL Editor wordt een gegenereerd script weergegeven, waarmee u het script kunt inspecteren en uitvoeren op een database.
Schemavergelijking vereist een grafisch hulpprogramma, zoals Visual Studio of de MSSQL-extensie voor Visual Studio Code.