Porovnání schémat (Preview) v SQL Server Management Studio

Applies to: SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse Analytics

Porovnání schématu umožňuje porovnat dvě definice databáze. Zdrojem a cílem porovnání může být libovolná kombinace připojené databáze, projektu databáze SQL nebo .dacpac souboru. Po dokončení porovnání se výsledky zobrazí jako sada akcí, které uvedou cíl do stejného stavu jako zdroj. Rozdíly mezi databázovými modely se zobrazují jako rozdíly ve správě zdrojového kódu.

Pokud je cílem porovnání schématu projekt SQL nebo databáze, můžete cíl aktualizovat přímo z rozhraní porovnání schémat nebo vygenerovat aktualizační skript, který má stejný účinek.

Screenshot okna Porovnání schématu v SQL Server Management Studio zobrazující porovnání mezi zdrojem a cílovým.

Porovnání schémat poskytuje následující možnosti:

  • Porovnejte schémata mezi dvěma .dacpac soubory, databázemi nebo projekty databáze SQL.
  • Zobrazte výsledky jako sadu akcí, které odpovídají cíli vůči zdroji.
  • Selektivní vyloučení akcí uvedených ve výsledcích
  • Nastavte možnosti, které řídí rozsah porovnání.
  • Použijte změny přímo na cíl nebo vygenerujte skript pro pozdější použití změn.
  • Uložte porovnání jako .scmp soubor pro opakované použití.

Předpoklady

Spustit porovnání schématu

V nástroji SSMS můžete otevřít porovnání schémat z několika vstupních bodů.

Průzkumník objektů

Klikněte pravým tlačítkem na databázi v Průzkumník objektů a vyberte Tasks>Schema Compare (Preview). Vybraná databáze se automaticky nastaví jako zdroj.

Průzkumník řešení

Klikněte pravým tlačítkem na projekt databáze SQL v Průzkumník řešení a vyberte Schema Compare (Preview). Vybraný projekt se automaticky nastaví jako zdroj.

Poznámka:

Pokud chcete pracovat s projekty databáze SQL v Průzkumník řešení, potřebujete úlohu Database DevOps.

Nabídka Nástroje

V nabídce Nástroje vyberte Porovnání schémat (Preview). Otevře se okno Porovnání schématu bez přednastaveného zdroje nebo cíle.

Výběr zdroje a cíle

Po otevření okna Schema Compare vyberte zdroj a cíl pro porovnání. Každá z nich může být připojená databáze, .dacpac soubor nebo projekt databáze SQL.

Snímek obrazovky možností výběru zdroje a cíle zobrazující volby Databáze, Aplikace datové vrstvy (.dacpac) a Projekt databáze.

  • Databáze: Připojte se ke spuštěné instanci databáze. Zdrojem je definice databáze, kterou chcete použít jako základ pro změny cíle.
  • Aplikace datové vrstvy (.dacpac): Vyhledejte kompilovaný .dacpac soubor. A .dacpac obsahuje snímek schématu databáze.
  • Database Project: Vyberte otevřený project databáze SQL. Vyžaduje zatížení DevOps pro databáze.

Cílem je definice databáze, na kterou chcete vyhodnotit a potenciálně použít změny.

Spustit a zkontrolovat porovnání

Výběrem možnosti Porovnat na panelu nástrojů zahájíte proces porovnání.

Po dokončení porovnání se v podokně Výsledky zobrazí strukturální rozdíly mezi zdrojem a cílem. Výsledky porovnání seskupí všechny rozdíly podle akce, jako je odstranění, změna nebo přidání.

Každý řádek identifikuje objekt ve zdrojovém nebo cílovém schématu (nebo obojím) a akci, kterou proces převezme na cílovém schématu, aby cílový objekt byl stejný jako zdrojový objekt. Pokud objekt přejmenujete nebo přesunete do nového schématu, liší se zdrojové a cílové názvy. Název zdroje se zobrazí tučným písmem, aby se zvýrazňoval rozdíl.

Ve výchozím nastavení seznam výsledků skryje objekty, které jsou stejné v obou schématech nebo které nejsou podporovány pro aktualizaci (například předdefinované objekty). Výběrem příslušných tlačítek filtru na panelu nástrojů zobrazte tyto objekty.

Pokud chcete změnit předvolbu seskupení, vyberte na panelu nástrojů rozevírací seznam Výsledky skupiny . Výběrem možnosti Typ seskupíte výsledky podle typu objektu, například podle tabulek, zobrazení nebo uložených procedur.

Vyloučení rozdílů

Ve výchozím nastavení akce Update Target zahrnuje všechny rozdíly v rámci svého rozsahu. Pokud chcete vyloučit rozdíly, které nechcete synchronizovat, zrušte zaškrtnutí políčka Zahrnout u každého řádku. Řádek se okamžitě zobrazí šedě. Když porovnání schématu aktualizuje cíl, nepovažuje tento řádek za žádné čekající změny.

Pokud má vyloučený řádek závislé objekty, například řádek tabulky odkazovaný na řádek Zobrazení , je vyloučený řádek zakázaný, ale jeho zaškrtávací políčko se nevymaže, dokud nezaškrtnete všechny závislé řádky. Pokud refaktorujete řádek, například ho přejmenujete nebo přesunete do jiného schématu, zaškrtávací políčko pro tento řádek a jeho závislé podřízené řádky je deaktivováno.

Možnosti porovnání

Výběrem možnosti na panelu nástrojů nakonfigurujte, které objekty se porovnávají a jaké typy rozdílů se ignorují. K dispozici jsou následující možnosti:

  • Ignorovat prázdné znaky
  • Ignorovat schémata oddílů
  • Ignorovat pořadí sloupců

Můžete také nakonfigurovat, které typy objektů jsou součástí porovnání, jako jsou tabulky, uložené procedury, indexy, oprávnění a uživatelem definované typy.

Použít změny

Pokud chcete aktualizovat schéma cíle, máte dvě možnosti:

  • Použít: Použijte změny přímo na cílovou databázi nebo projekt z okna Porovnání schémat.
  • Generate Script: Vygenerujte Transact-SQL skript, který zachycuje stejné změny, které můžete zkontrolovat a spustit později.

Vygenerovaný skript se zobrazí v editoru Transact-SQL, kde ho můžete zkontrolovat a spustit pro databázi.

Uložit porovnání

Definici porovnání schématu můžete uložit jako .scmp soubor, který se označuje jako soubor porovnání schématu. Tento soubor ukládá informace o nastavení porovnání v jazyce XML a zahrnuje:

  • Informace o zdrojovém a cílovém připojení
  • Možnosti porovnání
  • Vyloučené typy objektů

V aplikaci SSMS můžete otevřít .scmp soubor, abyste mohli znovu spustit stejné porovnání později nebo sdílet porovnání s ostatními.