Udostępnij za pośrednictwem


Omówienie porównania schematów

Dotyczy:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceSQL Database w Microsoft Fabric

Narzędzie do porównywania schematów umożliwia porównywanie dwóch definicji bazy danych, w których źródło i element docelowy porównania mogą być dowolną kombinacją połączonej bazy danych, projektu bazy danych SQL lub .dacpac pliku. Po zakończeniu porównania wyniki porównania są wyświetlane jako zestaw akcji, które sprawiają, że element docelowy jest taki sam jak źródło. Różnice między modelami baz danych są prezentowane w podobny sposób, jak różnice w kontroli źródła. Jeśli element docelowy porównania schematów jest projektem SQL lub bazą danych, możesz zaktualizować obiekt docelowy bezpośrednio z interfejsu porównania schematu lub wygenerować skrypt aktualizacji, który ma taki sam efekt.

Zrzut ekranu przedstawiający różnice między pakietem a bazą danych jako koncepcją.

Porównanie schematów udostępnia następujące funkcje:

  • Porównaj schematy między dwoma .dacpac plikami, bazami danych lub projektami SQL.
  • Wyświetl wyniki jako zestaw akcji, aby dopasować element docelowy do źródła.
  • Selektywne wykluczanie akcji wymienionych w wynikach.
  • Ustaw opcje kontrolujące zakres porównania.
  • Zastosuj zmiany bezpośrednio do obiektu docelowego lub wygeneruj skrypt, aby później zastosować zmiany.
  • Zapisz porównanie.

Funkcjonalność

Różnice między źródłem i obiektem docelowym pojawiają się w siatce, aby ułatwić przegląd. Porównanie można przeprowadzić w dowolnym kierunku między modelem bazy danych pochodzącym z dowolnej z następujących opcji:

  • połączona baza danych
  • Projekt bazy danych SQL
  • Plik .dacpac

W porównaniach schematów można zagłębić się w szczegóły i przejrzeć każdą różnicę w tabeli wyników lub w formie skryptu, gdzie szczegóły zmian są dostępne na poziomie poszczególnych wierszy. Można również selektywnie wykluczyć określone różnice przed zaktualizowaniem celu. Narzędzie do porównywania schematów jest dostępne w programie Visual Studio, narzędziu Azure Data Studio i wierszu polecenia.

Opcje porównania schematów

Opcje porównania schematów są pobierane z opcji wdrażania dostępnych w bibliotece .NET DacFx. Dostępne są następujące opcje:

  • ignoruj białe znaki
  • ignoruj schematy partycji
  • ignoruj kolejność kolumn
  • usuwanie indeksów niewystępujących w źródle
  • blokowanie możliwej utraty danych

Typy obiektów, które są uwzględnione w porównaniu, można również skonfigurować. Te obiekty obejmują tabele, procedury składowane, indeksy, uprawnienia, typy zdefiniowane przez użytkownika i inne.

Pliki porównania schematów

Definicję porównania dla porównania schematów można zapisać jako .scmp plik znany jako plik porównania schematów. Ten plik przechowuje informacje o porównywaniu schematu w formacie XML i zawiera następujące elementy:

  • informacje o połączeniu źródłowym i docelowym
  • opcje porównania
  • wykluczone typy obiektów

Plik .scmp można otworzyć w programie Visual Studio lub azure Data Studio, aby łatwo uruchomić to samo porównanie później lub udostępnić porównanie innym osobom.

Uruchamianie i używanie porównywarki schematów

  1. W menu Narzędzia w programie Visual Studio wybierz pozycję SQL Server, a następnie wybierz pozycję Nowe porównanie schematów.

    Alternatywnie kliknij prawym przyciskiem myszy projekt TradeDev w Eksploratorze rozwiązań i wybierz pozycję Porównaj schemat.

    Zostanie otwarte okno Porównanie schematów , a program Visual Studio automatycznie przypisze mu nazwę taką jak SqlSchemaCompare1.

    Dwa menu rozwijane z zieloną strzałką między nimi są wyświetlane tuż pod paskiem narzędzi okna Porównanie schematów . Te menu umożliwiają wybieranie definicji bazy danych dla źródła porównania i celu.

  2. Na liście rozwijanej Wybierz źródło wybierz pozycję Wybierz źródło , a zostanie otwarte okno dialogowe Wybieranie schematu źródłowego .

    Jeśli otwarto okno Porównanie schematów , klikając prawym przyciskiem myszy nazwę projektu, schemat źródłowy jest już wypełniony i możesz przejść do kroku 4.

    Zrzut ekranu przedstawiający okno dialogowe wyboru źródła porównania schematów w programie Visual Studio.

  3. Ukończ wybory dla źródła porównania schematów, wybierając plik Project, Database connection lub .dacpac . Źródłem jest definicja bazy danych, której chcesz użyć jako podstawy zmian w obiekcie docelowym.

  4. Z listy rozwijanej Wybierz element docelowy w oknie Porównanie schematu wybierz pozycję Wybierz element docelowy, a zostanie otwarte okno dialogowe Wybieranie schematu docelowego . Wypełnij wybrane opcje dla elementu docelowego porównania schematów, wybierając plik Project, Database connection lub .dacpac . Elementem docelowym jest definicja bazy danych, którą chcesz ocenić i do której potencjalnie możesz zastosować zmiany.

  5. Możesz również wybrać przycisk Opcje na pasku narzędzi Okna porównania schematów , aby określić, które obiekty są porównywane, jakie typy różnic są ignorowane i inne ustawienia.

  6. Wybierz przycisk Porównaj na pasku narzędzi Okna porównania schematów , aby rozpocząć proces porównywania.

    Po zakończeniu porównania różnice strukturalne między projektem a bazą danych są wyświetlane w okienku Wyniki w górnej części okna. Domyślnie wyniki porównania grupują różnice według akcji (na przykład Usuń, Zmień lub Dodaj). W okienku Wyniki zostanie wyświetlony wiersz dla każdego obiektu bazy danych, który różni się między definicjami bazy danych. Każdy wiersz identyfikuje obiekt w schemacie źródłowym lub docelowym (lub obu tych) oraz akcję, która zostanie podjęta w schemacie docelowym, aby obiekt docelowy był taki sam jak obiekt źródłowy. Jeśli obiekt został refaktoryzowany i zmieniono nazwę lub przeniesiono do nowego schematu, nazwy źródłowe i docelowe są inne, a nazwa źródła jest wyświetlana pogrubioną czcionką, aby wyróżnić różnicę.

    Zrzut ekranu przedstawiający interfejs porównania schematu w programie Visual Studio porównujący bazę danych z projektem.

    Domyślnie lista wyników ukrywa obiekty, które są takie same w obu schematach lub które nie są obsługiwane do aktualizacji (na przykład obiekty wbudowane). Możesz wybrać odpowiednie przyciski filtru na pasku narzędzi, aby wyświetlić te obiekty.

    Aby zmienić preferencję grupowania, wybierz listę rozwijaną Grupuj wyniki na pasku narzędzi. Wybierz pozycję Typ , aby pogrupować wyniki według typu obiektu (na przykład według tabel, widoków lub procedur składowanych).

  7. Domyślnie wszystkie różnice są uwzględniane w zakresie akcji Aktualizuj cel. Możesz wykluczyć różnice, których nie chcesz synchronizować. Aby to zrobić, usuń zaznaczenie kolumny Akcja w środku każdego wiersza. Alternatywnie kliknij prawym przyciskiem myszy wiersz w okienku Schemat i wybierz pozycję Wyklucz. Wiersz jest natychmiast wyszarzany. Gdy porównanie schematów służy do aktualizacji docelowej bazy danych, ten wiersz nie jest brany pod uwagę w przypadku żadnych oczekujących zmian.

    Możesz również kliknąć prawym przyciskiem myszy wiersz grupy i wybrać pozycję Wyklucz wszystko lub Uwzględnij wszystko, co jest równoważne usuwaniu zaznaczenia lub sprawdzaniu wszystkich różnic w tej grupie. Grupując wyniki według schematu, kliknięcie prawym przyciskiem myszy na wierszu grupy jest przydatnym sposobem dołączania lub wykluczania wszystkich zmian w określonym schemacie.

    Jeśli wykluczony wiersz zawiera obiekty zależne (na przykład wiersz tabeli , do którego odwołuje się wiersz Widok ), wykluczony wiersz jest wyłączony, ale pole wyboru nie jest czyszczone. Gdy wszystkie wiersze zależne od niego zostaną odznaczone, nieaktywny wiersz zostaje odznaczony. Ponadto jeśli wiersz jest refaktoryzowany (zmieniono nazwę lub przeniesiono go do innego schematu), pole wyboru jest wyłączone dla tego wiersza i dowolnego z jego zależnych wierszy podrzędnych.

    Jeśli odświeżysz porównanie, te różnice, które chcesz pominąć, zostaną zignorowane.

Aby zaktualizować schemat obiektu docelowego, masz dwie opcje. Obiekt docelowy można zaktualizować bezpośrednio w oknie Porównanie schematów , jeśli elementem docelowym jest baza danych lub projekt, lub możesz wygenerować skrypt aktualizacji, jeśli elementem docelowym jest baza danych lub plik bazy danych. Wygenerowany skrypt jest wyświetlany w edytorze Transact-SQL, z którego można sprawdzić, czy skrypt wykona go względem bazy danych.

Uwaga / Notatka

Porównanie schematów graficznych jest częściowo dostępne w wersji zapoznawczej projektów SQL w stylu zestawu SDK w programie Visual Studio. Porównania schematów są dostępne dla połączonych baz danych i .dacpac plików, projekty bazy danych SQL nie są jeszcze dostępne.

  1. W menu Narzędzia w programie Visual Studio wybierz pozycję SQL Server, a następnie wybierz pozycję Nowe porównanie schematów.

    Alternatywnie kliknij prawym przyciskiem myszy projekt TradeDev w Eksploratorze rozwiązań i wybierz pozycję Porównaj schemat.

    Zostanie otwarte okno Porównanie schematów , a program Visual Studio automatycznie przypisze mu nazwę taką jak SqlSchemaCompare1.

    Dwa menu rozwijane z zieloną strzałką między nimi są wyświetlane tuż pod paskiem narzędzi okna Porównanie schematów . Te menu umożliwiają wybieranie definicji bazy danych dla źródła porównania i celu.

  2. Na liście rozwijanej Wybierz źródło wybierz pozycję Wybierz źródło , a zostanie otwarte okno dialogowe Wybieranie schematu źródłowego .

    Jeśli otwarto okno Porównanie schematów , klikając prawym przyciskiem myszy nazwę projektu, schemat źródłowy jest już wypełniony i możesz przejść do kroku 4.

    Zrzut ekranu przedstawiający okno dialogowe wyboru źródła porównania schematów w programie Visual Studio.

  3. Ukończ wybory dla źródła porównania schematów, wybierając plik Project, Database connection lub .dacpac . Źródłem jest definicja bazy danych, której chcesz użyć jako podstawy zmian w obiekcie docelowym.

  4. Z listy rozwijanej Wybierz element docelowy w oknie Porównanie schematu wybierz pozycję Wybierz element docelowy, a zostanie otwarte okno dialogowe Wybieranie schematu docelowego . Wypełnij wybrane opcje dla elementu docelowego porównania schematów, wybierając plik Project, Database connection lub .dacpac . Elementem docelowym jest definicja bazy danych, którą chcesz ocenić i do której potencjalnie możesz zastosować zmiany.

  5. Możesz również wybrać przycisk Opcje na pasku narzędzi Okna porównania schematów , aby określić, które obiekty są porównywane, jakie typy różnic są ignorowane i inne ustawienia.

  6. Wybierz przycisk Porównaj na pasku narzędzi Okna porównania schematów , aby rozpocząć proces porównywania.

    Po zakończeniu porównania różnice strukturalne między projektem a bazą danych są wyświetlane w okienku Wyniki w górnej części okna. Domyślnie wyniki porównania grupują wszystkie różnice według akcji (na przykład Usuń, Zmień lub Dodaj). W okienku Wyniki zostanie wyświetlony wiersz dla każdego obiektu bazy danych, który różni się między definicjami bazy danych. Każdy wiersz identyfikuje obiekt w schemacie źródłowym lub docelowym (lub obu tych) oraz akcję, która zostanie podjęta w schemacie docelowym, aby obiekt docelowy był taki sam jak obiekt źródłowy. Jeśli obiekt został refaktoryzowany i zmieniono nazwę lub przeniesiono do nowego schematu, nazwy źródłowe i docelowe są inne, a nazwa źródła jest wyświetlana pogrubioną czcionką, aby wyróżnić różnicę.

    Zrzut ekranu przedstawiający interfejs porównania schematu w programie Visual Studio porównujący bazę danych z projektem.

    Domyślnie lista wyników ukrywa obiekty, które są takie same w obu schematach lub które nie są obsługiwane do aktualizacji (na przykład obiekty wbudowane). Możesz wybrać odpowiednie przyciski filtru na pasku narzędzi, aby wyświetlić te obiekty.

    Aby zmienić preferencję grupowania, wybierz listę rozwijaną Grupuj wyniki na pasku narzędzi. Wybierz pozycję Typ , aby pogrupować wyniki według typu obiektu (na przykład według tabel, widoków lub procedur składowanych).

  7. Domyślnie wszystkie różnice są uwzględniane w zakresie akcji Aktualizuj cel. Możesz wykluczyć różnice, których nie chcesz synchronizować. Aby to zrobić, usuń zaznaczenie kolumny Akcja w środku każdego wiersza. Alternatywnie kliknij prawym przyciskiem myszy wiersz w okienku Schemat i wybierz pozycję Wyklucz. Wiersz jest natychmiast wyszarzany. Gdy porównanie schematów służy do aktualizacji docelowej bazy danych, ten wiersz nie jest brany pod uwagę w przypadku żadnych oczekujących zmian.

    Możesz również kliknąć prawym przyciskiem myszy wiersz grupy i wybrać pozycję Wyklucz wszystko lub Uwzględnij wszystko, co jest równoważne usuwaniu zaznaczenia lub sprawdzaniu wszystkich różnic w tej grupie. W przypadku grupowania wyników według schematu jest to przydatny sposób dołączania lub wykluczania wszystkich zmian w określonym schemacie.

    Jeśli wykluczony wiersz zawiera obiekty zależne (na przykład wiersz tabeli , do którego odwołuje się wiersz Widok ), wykluczony wiersz jest wyłączony, ale pole wyboru nie jest czyszczone. Gdy wszystkie wiersze zależne od niego zostaną odznaczone, nieaktywny wiersz zostaje odznaczony. Ponadto jeśli wiersz jest refaktoryzowany (zmieniono nazwę lub przeniesiono go do innego schematu), pole wyboru jest wyłączone dla tego wiersza i dowolnego z jego zależnych wierszy podrzędnych.

    Jeśli odświeżysz porównanie, te różnice, które zostały wybrane do pominięcia, zostaną zignorowane.

Aby zaktualizować schemat obiektu docelowego, masz dwie opcje. Obiekt docelowy można zaktualizować bezpośrednio w oknie Porównanie schematów , jeśli elementem docelowym jest baza danych lub projekt, lub możesz wygenerować skrypt aktualizacji, jeśli elementem docelowym jest baza danych lub plik bazy danych. Wygenerowany skrypt jest wyświetlany w edytorze Transact-SQL, z którego można sprawdzić, czy skrypt wykona go względem bazy danych.

Bardziej szczegółowe informacje na temat porównywania schematów w programie Visual Studio Code są dostępne w artykule Porównanie schematów (wersja zapoznawcza)

  1. W programie Visual Studio Code na palecie poleceń (ctrl/cmd+shift+P) wyszukaj i wybierz pozycję MSSQL: Porównanie schematu (wersja zapoznawcza).

    Alternatywnie kliknij prawym przyciskiem myszy projekt bazy danych w widoku Projekty bazy danych lub bazę danych w Eksploratorze obiektów, a następnie wybierz pozycję Porównaj schemat.

    Zrzut ekranu przedstawiający element menu porównanie schematów w Eksploratorze obiektów programu Visual Studio Code.

    Zostanie otwarte okno Porównanie schematu, a źródło lub element docelowy może być wstępnie ustawiony na podstawie punktu startowego.

    Dwa przyciski wielokropka ze strzałką między nimi są wyświetlane tuż pod paskiem narzędzi okna Porównanie schematów . Te menu umożliwiają wybieranie definicji bazy danych dla źródła porównania i celu.

  2. Wybranie przycisku wielokropka dla źródła lub docelowego powoduje otwarcie okna dialogowego, w którym można zaktualizować każdą z nich. Ukończ wybory dla źródła porównania schematów, wybierając plik Project, Database connection lub .dacpac . Źródłem jest definicja bazy danych, której chcesz użyć jako podstawy zmian w obiekcie docelowym. Elementem docelowym jest definicja bazy danych, którą chcesz ocenić i do której potencjalnie możesz zastosować zmiany.

    Zrzut ekranu przedstawiający okno dialogowe wyboru źródła porównania schematu w programie Visual Studio Code.

    Po zakończeniu zaznaczenia wybierz przycisk OK , aby zamknąć okno dialogowe i wrócić do okna Porównanie schematów .

  3. Możesz również wybrać przycisk Opcje na pasku narzędzi Okna porównania schematów , aby określić, które obiekty są porównywane, jakie typy różnic są ignorowane i inne ustawienia.

  4. Wybierz przycisk Porównaj na pasku narzędzi Okna porównania schematów , aby rozpocząć proces porównywania.

    Po zakończeniu porównania różnice strukturalne między projektem a bazą danych są wyświetlane w okienku Wyniki w górnej części okna. Domyślnie wyniki porównania grupują wszystkie różnice według akcji (na przykład Usuń, Zmień lub Dodaj). W okienku Wyniki zostanie wyświetlony wiersz dla każdego obiektu bazy danych, który różni się między definicjami bazy danych. Każdy wiersz identyfikuje obiekt w schemacie źródłowym lub docelowym (lub obu tych) oraz akcję, która zostanie podjęta w schemacie docelowym, aby obiekt docelowy był taki sam jak obiekt źródłowy. Jeśli obiekt został refaktoryzowany i zmieniono nazwę lub przeniesiono do nowego schematu, nazwy źródłowe i docelowe są inne, a nazwa źródła jest wyświetlana na pogrubionej czcionki, aby wyróżnić różnicę.

    Zrzut ekranu przedstawiający interfejs porównania schematu w narzędziu Azure Data Studio porównującym bazę danych z projektem.

  5. Domyślnie wszystkie różnice są uwzględniane w zakresie akcji Aktualizuj cel. Możesz wykluczyć różnice, których nie chcesz synchronizować. Aby to zrobić, usuń zaznaczenie kolumny Akcja w środku każdego wiersza. Gdy porównanie schematów jest używane do aktualizowania docelowej bazy danych, ten wiersz nie jest brany pod uwagę w przypadku żadnych oczekujących zmian.

    Jeśli wykluczony wiersz zawiera obiekty zależne (na przykład wiersz tabeli , do którego odwołuje się wiersz Widok ), wykluczony wiersz jest wyłączony, ale pole wyboru nie jest czyszczone. Gdy wszystkie wiersze zależne od niego zostaną odznaczone, nieaktywny wiersz zostaje odznaczony. Ponadto jeśli wiersz jest refaktoryzowany (zmieniono nazwę lub przeniesiono go do innego schematu), pole wyboru jest wyłączone dla tego wiersza i dowolnego z jego zależnych wierszy podrzędnych.

    Jeśli odświeżysz porównanie, te różnice, które zostały wybrane do pominięcia, zostaną zignorowane.

Aby zaktualizować schemat obiektu docelowego, masz dwie opcje. Element docelowy można zaktualizować bezpośrednio z okna Porównanie schematu za pomocą przycisku Zastosuj , jeśli element docelowy jest bazą danych lub projektem, lub możesz wygenerować skrypt aktualizacji, jeśli element docelowy jest bazą danych z przyciskiem Generuj skrypt . Wygenerowany skrypt jest wyświetlany w edytorze Transact-SQL, z którego można sprawdzić, czy skrypt wykona go względem bazy danych.

Porównanie schematów wymaga graficznego narzędzia, takiego jak Visual Studio lub Azure Data Studio.