W SQL Server operacja „upsert” łączy działania zarówno wkładki, jak i instrukcji aktualizacji w pojedynczej instrukcji. Ta operacja wprowadza nowy wiersz do tabeli, jeśli ten rząd nie jest obecny. W przeciwnym razie aktualizuje już obecny rząd. Zaletą przeprowadzenia operacji upsert jest to, że eliminuje potrzebę osobnych instrukcji wstawienia i aktualizacji, upraszczając kod SQL i zmniejszając prawdopodobieństwo błędów.
Tworzenie stołu
Utwórzmy tabelę na serwerze SQL, na której możemy użyć do wykonywania operacji upsert.
Utwórz tabelę [DBO].[Pracownik](Wyjście:
Nazwa empid depid salSposoby wykonywania operacji upsert
Istnieje kilka sposobów wykonywania operacji upsert na serwerze SQL. W tym artykule omówimy trzy powszechne metody wykonywania operacji upsert: Korzystanie z klauzuli istnieją, funkcja RowCount i instrukcja scalania.
1. Korzystanie z klauzuli istnieje
Ta metoda polega na użyciu podziału do sprawdzenia, czy wiersz już istnieje w tabeli przed wykonaniem instrukcji wstawienia lub aktualizacji. Klauzula istnieje, że zwraca prawdziwie, jeże.
Rozpocznij transakcjęWyjście:
Nazwa empid depid salTutaj kod SQL wykorzystuje metodę ESTIS do wykonania operacji upsert na serwerze SQL. Inicjuje transakcję i deklaruje zmienne do przechowywania identyfikatora pracownika i wartości nazwy. Kod sprawdza, czy rekord z danym identyfikatorem pracownika istnieje w tabeli za pomocą klauzuli istnieje. Jeśli istnieje, aktualizuje nazwę pracownika do nowej wartości. W przeciwnym razie wstawia nowy wiersz z podanym identyfikatorem i nazwiskiem pracownika.
2. Korzystanie z funkcji RowCount
Ta metoda obejmuje najpierw uruchomienie instrukcji aktualizacji, a następnie instrukcja Wstaw, jeśli instrukcja aktualizacji nie zaktualizowała żadnych wierszy.
Rozpocznij transakcjęWyjście:
Nazwa empid depid salTutaj kod SQL próbuje zaktualizować nazwę pracownika z podanym identyfikatorem w tabeli za pomocą updLock i serializacji wskazówek, które nabywają wyłączną blokadę w wybranym wierszu. Jeśli aktualizacja nie wpływa na brak wierszy, kod wykonuje instrukcję Wstaw do wstawienia nowego wiersza z podanym identyfikatorem pracownika i wartościami nazwy.
3. Korzystanie z instrukcji scalania
Trzecim sposobem wykonania operacji upsert na serwerze SQL jest zastosowanie instrukcji scalania. Ta metoda łączy działania instrukcji wkładki i aktualizacji w jedno instrukcję, podobną do klauzuli ESTIS, ale z bardziej zaawansowanymi funkcjami.
Deklaruj @EmployeEID int = 18;Wyjście:
Nazwa empid depid salTo zapytanie SQL wykorzystuje instrukcję scalania, aby scalić dane z tabeli źródłowej w tabelę docelową. Dopasowuje rzędy między dwiema tabelami za pomocą „kolumny empid” i aktualizuje „kolumnę nazwy” w tabeli docelowej, jeśli znaleziono dopasowanie. Jeśli nie ma dopasowania, wkłada nowy rząd.
Wniosek
Operacje upsert są powszechnym wymogiem na serwerze SQL. Istnieje wiele sposobów ich osiągnięcia, w tym przy użyciu metody EXS, funkcji RowCount i instrukcji scalania. Możemy wybrać najlepsze podejście na podstawie naszych wymagań.