SQL Server Scal instrukcja

SQL Server Scal instrukcja

Bazy danych dotyczą operacji CRUD. Tworzymy, czytamy, aktualizujemy i usuwamy dane w różnych tabelach bazy danych. Jednak większość operacji CRUD w bazie danych wymaga oddzielnej logiki dla zadań, takich jak wstawienie, aktualizacja i usuwanie.

Może to szybko zbędne. SQL Server zapewnia wydajny sposób wykonywania operacji CRUD za pomocą instrukcji scalania. Microsoft wprowadził instrukcję scalania w SQL Server 2008 i powyżej.

Ten samouczek zrozumie, jak korzystać z instrukcji scalania SQL Server do wykonywania wielu operacji w jednym zapytaniu.

Podstawy

Weźmy przykład tego, gdzie masz dwie tabele. Tabele docelowe i źródłowe. Jeśli chcesz zaktualizować wartości w tabeli docelowej na podstawie wartości z tabel źródłowych, możesz podjąć trzy ścieżki:

  1. Pierwszy to miejsce, w którym źródło zawiera brakujące wiersze w tabeli docelowej. Potrzebujesz instrukcji wstawienia do tabeli docelowej w takim przypadku.
  2. Drugi to miejsce, w którym tabela docelowa zawiera brakujące rekordy w tabeli źródłowej. Tutaj potrzebujemy instrukcji Usuń, aby usunąć wiersze z celu.
  3. Ostatni scenariusz to miejsce, w którym rekord w źródle i celu zawiera różne wartości. W takim przypadku potrzebujemy instrukcji aktualizacji do tabeli docelowej.

Aby wykonać powyższe operacje indywidualnie, musimy utworzyć trzy osobne logikę do operacji wstawiania, usuwania i aktualizacji. Możemy jednak połączyć je za pomocą instrukcji scalania.

Możemy wyrazić składnię instrukcji scalania, jak pokazano:

Scal Target_Table za pomocą źródła_tabla
Na warunkach
Po dopasowaniu
Następnie aktualizacja_operacja
Gdy nie jest dopasowany - według tabeli docelowej
Następnie Insert_Operation
Gdy nie jest dopasowane przez źródło
Następnie usuń;

Identyfikujemy tabelę docelową i źródłową i określamy je w klauzuli scalania. Następnie określamy warunek. Określone warunki kontroluje sposób, w jaki wiersze z tabeli źródłowej są dopasowane do tabel docelowych. Pomyśl o tym jak o stanie połączenia.

Następny blok zawiera działania, które należy wykonać na podstawie wyniku określonego warunku.

Jeśli warunek powoduje dopasowanie, aktualizujemy rekordy w tabeli docelowej z tabeli źródłowej.

Jeśli jednak rekordy są niezrównane (z tabeli docelowej), wstawiamy brakujące rekordy w tabeli docelowej.

Wreszcie, jeśli rekordy są niezrównane (według tabeli docelowej), usuwamy niezrównane rekordy z tabeli docelowej.

SQL Server - Scal przykład

Weźmy prosty przykład. Załóżmy, że mamy dwie tabele zawierające informacje o produktach jako produkty_target i produkt_source.

Przykładowy fragment kodu pokazuje zapytania SQL, aby utworzyć i aktualizować określone tabele.

Użyj SalesDB;
Utwórz tabelę produktów_target (
Product_id Int Not Null Klucz podstawowy (1,1),
Product_name varchar (255) nie null,
Cena dziesiętna (10,2)
);
Wstaw do produktów_target (nazwa_produktu, cena)
Wartości („Biuro Office”, 531),
(„Przewodniczący biurowy”, 379.99),
(„Butelka wody”, 69.99);
Utwórz stół produktów_source (
Product_id Int Not Null Klucz podstawowy (1,1),
Product_name varchar (255) nie null,
Cena dziesiętna (10,2)
);
Wstaw do produktów_source (nazwa_produktu, cena)
Wartości („Biuro Office”, 531.00),
(„Lampka biurka”, 50.00),
(„Przewodniczący biurowy”, 699.99),
(„Butelka wody”, 89.95);

Teraz mamy dwie tabele działające jako cel i źródło. Pokazane są rekordy przechowywane w tabelach:

Aby zsynchronizować dane między tabelą docelową i źródłową, możemy wykonać zapytanie scalania, jak pokazano w poniższym przykładzie:

Scal Products_Target jako t
Używanie produktów_source jako s
Dalej (s.produkt_id = t.ID produktu)
Po dopasowaniu
Następnie aktualizacja zestawu
T.Product_name = s.Nazwa produktu,
T.cena = s.cena
Gdy nie jest dopasowany przez cel
Następnie wstaw (nazwa_produktu, cena)
Wartości (s.Product_name, s.cena)
Gdy nie jest dopasowane przez źródło
Następnie usuń;

Po wykonaniu powyższego zapytania serwer SQL wykonuje określone operacje na podstawie uzyskanego warunku.

Możemy zapytać tabele po operacji scalania jako:

Wybierz * z produktów_source;
Wybierz * z produktów_target;

Powstałe wartości są jak pokazano w poniższym przykładzie:


Jak zauważysz, rekordy tabeli źródłowej i docelowej są zsynchronizowane z wartościami zaktualizowanymi, wstawionymi i usuwanymi.

Wniosek

Ten przewodnik pokazuje, jak pracować z instrukcją scalania SQL Server. Pozwala na wykonywanie operacji wstawki, aktualizacji i usuwania w tabelach w oparciu o wynikowe warunki.

Dziękuję za przeczytanie!