logo

Wyzwalacz SQL | Baza danych studentów

Wyzwalacz to procedura składowana w bazie danych, która automatycznie wywołuje się za każdym razem, gdy wystąpi specjalne zdarzenie w bazie danych. Na przykład wyzwalacz można wywołać, gdy wiersz zostanie wstawiony do określonej tabeli lub gdy zostaną zaktualizowane określone kolumny tabeli. Krótko mówiąc, wyzwalacz to zbiór SQL instrukcje o określonych nazwach, które są przechowywane w pamięci systemowej. Należy do określonej klasy procedur składowanych, które są automatycznie wywoływane w odpowiedzi na zdarzenia serwera bazy danych. Do każdego wyzwalacza dołączona jest tabela.

Ponieważ wyzwalacza nie można wywołać bezpośrednio, w przeciwieństwie do procedury składowanej, nazywa się go procedurą specjalną. Wyzwalacz jest wywoływany automatycznie za każdym razem, gdy ma miejsce zdarzenie modyfikacji danych w tabeli, co stanowi główną różnicę między wyzwalaczem a procedurą. Z drugiej strony procedurę składowaną należy wywołać bezpośrednio.



Poniżej przedstawiono kluczowe różnice między wyzwalaczami a procedurami przechowywanymi:

orzeszki ziemne vs orzeszki ziemne
  1. Wyzwalaczy nie można wywołać ani wykonać ręcznie.
  2. Nie ma szans, że wyzwalacze otrzymają parametry.
  3. Transakcja nie może zostać zatwierdzona ani wycofana w ramach wyzwalacza.

Składnia:

utwórz wyzwalacz [nazwa_wyzwalacza]



[przed | Po]

wstawić

na [nazwa_tabeli]



[dla każdego wiersza]

[trigger_body]

Wyjaśnienie składni

  1. Utwórz wyzwalacz [nazwa_wyzwalacza]: Tworzy lub zastępuje istniejący wyzwalacz nazwą_wyzwalacza.
  2. [przed | after]: Określa, kiedy zostanie wykonany wyzwalacz.
  3. wstawka: Określa operację DML.
  4. On [nazwa_tabeli]: Określa nazwę tabeli powiązanej z wyzwalaczem.
  5. [dla każdego wiersza]: Określa wyzwalacz na poziomie wiersza, tj. wyzwalacz zostanie wykonany dla każdego wiersza, którego to dotyczy.
  6. [trigger_body]: Zapewnia operację, która ma zostać wykonana po uruchomieniu wyzwalacza

Dlaczego stosujemy wyzwalacze?

Gdy w określonych pożądanych scenariuszach będziemy musieli wykonać pewne czynności automatycznie, przydatne okażą się wyzwalacze. Na przykład musimy być świadomi częstotliwości i czasu wprowadzania zmian w tabeli, która podlega ciągłym zmianom. W takich przypadkach moglibyśmy utworzyć wyzwalacz wstawiający wymagane dane do innej tabeli, jeśli tabela podstawowa uległa jakimkolwiek zmianom.

Różne typy wyzwalaczy w SQL Server

Istnieją dwie kategorie wyzwalaczy:

  1. Wyzwalacz DDL
  2. Wyzwalacz DML
  3. Wyzwalacze logowania

Wyzwalacze DDL

Zdarzenia poleceń języka definicji danych (DDL), takie jak Create_table, Create_view, drop_table, Drop_view i Alter_table, powodują aktywację wyzwalaczy DDL.

Serwer SQL

  create trigger safety    on database  for   create_table,alter_table,drop_table  as   print 'you can not create,drop and alter tab>

Wyjście:

Wyzwalacze DML

Dane używają zdarzeń poleceń języka manipulacji (DML), które rozpoczynają się od wstawek, aktualizacji i usuwania, co uruchamia wyzwalacze DML. odpowiadające wstawce_tabeli, aktualizacji_widoku i usunięciu_tabeli.

indeks javy

Serwer SQL

create trigger deep  on   emp  for insert,update ,delete   as   print 'you can not insert,update and delete this table i' rollback;>

Wyjście:

Wyzwalacze logowania

wyzwalacze logowania są wyzwalane w odpowiedzi na zdarzenie LOGON. Kiedy sesja użytkownika jest tworzona z instancją SQL Server po zakończeniu procesu uwierzytelniania logowania, ale przed ustanowieniem sesji użytkownika, ma miejsce zdarzenie LOGON. W rezultacie komunikaty instrukcji PRINT i wszelkie błędy wygenerowane przez wyzwalacz będą widoczne w dzienniku błędów programu SQL Server. Błędy uwierzytelniania uniemożliwiają użycie wyzwalaczy logowania. Wyzwalacze te mogą służyć do śledzenia aktywności logowania lub ustawiania limitu liczby sesji, jakie może mieć dany login w celu kontrolowania i zarządzania sesjami serwera.

W jaki sposób SQL Server wyświetla wyzwalacz?

Wyzwalacz pokazu lub listy jest przydatny, gdy mamy wiele baz danych z wieloma tabelami. To zapytanie jest bardzo przydatne, gdy nazwy tabel są takie same w wielu bazach danych. Listę wszystkich wyzwalaczy dostępnych w SQL Server możemy wyświetlić za pomocą poniższego polecenia:

Składnia:

Z sys.triggers, WYBIERZ nazwę, is_instead_of_trigger
typ JEŚLI = „TR”;

SQL Server Management Studio bardzo ułatwia wyświetlanie lub wyświetlanie listy wszystkich wyzwalaczy dostępnych dla dowolnej tabeli. Poniższe kroki pomogą nam to osiągnąć:

Idź do Bazy danych wybierz żądaną bazę danych, a następnie ją rozwiń.

  • Wybierz Stoły menu i rozwiń je.
  • Wybierz dowolną konkretną tabelę i rozwiń ją.

Otrzymamy tutaj różne opcje. Kiedy wybieramy Wyzwalacze opcję, wyświetla wszystkie wyzwalacze dostępne w tej tabeli.

PRZED i PO Wyzwoleniu

Wyzwalacze BEFORE uruchamiają akcję wyzwalającą przed wykonaniem instrukcji wyzwalającej. AFTER wyzwala akcję wyzwalającą po uruchomieniu instrukcji wyzwalającej.

Przykład
Baza danych Student Report Database, w której odnotowywane są oceny uczniów. W takim schemacie utwórz wyzwalacz, aby suma i procent określonych ocen były automatycznie wstawiane przy każdym wstawianiu rekordu.

W tym przypadku wyzwalacz zostanie wywołany przed wstawieniem rekordu, aby można było użyć znacznika BEFORE.

Załóżmy, że schemat bazy danych

Zapytanie

mysql>>desc Student;>

Wyzwalacz SQL do instrukcji problemu.

img2

Powyższa instrukcja SQL utworzy wyzwalacz w bazie danych uczniów, w którym za każdym razem, gdy zostaną wprowadzone oceny z przedmiotów, przed wstawieniem tych danych do bazy danych, wyzwalacz obliczy te dwie wartości i wstawi je z wprowadzonymi wartościami. tj.

Wyjście

img3

W ten sposób można tworzyć i wykonywać wyzwalacze w bazach danych.

Zaleta wyzwalaczy

Korzyści ze stosowania wyzwalaczy w SQL Server obejmują:

  1. Reguły obiektu bazy danych są ustalane przez wyzwalacze, które powodują cofnięcie zmian, jeśli nie zostaną spełnione.
  2. Wyzwalacz sprawdzi dane i, jeśli to konieczne, dokona zmian.
  3. Integralność danych możemy wymusić dzięki wyzwalaczom.
  4. Dane są sprawdzane za pomocą wyzwalaczy przed wstawieniem lub aktualizacją.
  5. Wyzwalacze pomagają nam w prowadzeniu rejestru rekordów.
  6. Dzięki temu, że nie trzeba ich każdorazowo kompilować, wyzwalacze poprawiają wydajność zapytań SQL.
  7. Kod po stronie klienta jest redukowany przez wyzwalacze, co pozwala zaoszczędzić czas i pracę.
  8. Konserwacja spustu jest prosta.

Niekorzyść wyzwalaczy

Wady używania wyzwalaczy w SQL Server obejmują:

  1. Tylko wyzwalacze pozwalają na użycie rozszerzonych walidacji.
  2. Stosowane są automatyczne wyzwalacze, a użytkownik nie jest świadomy, kiedy są one wykonywane. W związku z tym trudno jest rozwiązać problemy pojawiające się w warstwie bazy danych.
  3. Narzut serwera bazy danych może wzrosnąć w wyniku wyzwalaczy.
  4. W pojedynczej instrukcji CREATE TRIGGER możemy określić tę samą akcję wyzwalającą dla wielu akcji użytkownika, takich jak INSERT i UPDATE.
  5. Do tworzenia wyzwalaczy dostępna jest tylko bieżąca baza danych, ale nadal można tworzyć odniesienia do obiektów poza bazą danych.

Często Zadawane Pytania

P1: Co to jest wyzwalacz SQL?

Odpowiedź:

Wyzwalacz SQL to obiekt bazy danych powiązany z tabelą i automatycznie wykonujący zestaw instrukcji SQL, gdy w tej tabeli wystąpi określone zdarzenie. Wyzwalacze służą do egzekwowania reguł biznesowych, utrzymywania integralności danych i automatyzowania niektórych działań w bazie danych. Mogą być wyzwalane przez różne zdarzenia, takie jak wstawianie, aktualizowanie lub usuwanie danych w tabeli, i umożliwiają wykonanie dodatkowych operacji na podstawie tych zdarzeń.

P2: Jak działają wyzwalacze SQL?

Odpowiedź:

Wyzwalacze SQL są definiowane za pomocą instrukcji SQL i są powiązane z konkretną tabelą. Kiedy zdefiniowane zdarzenie wyzwalające (np. INSERT, UPDATE, DELETE) wystąpi w tej tabeli, powiązany kod wyzwalający jest wykonywany automatycznie. Kod wyzwalacza może składać się z instrukcji SQL, które umożliwiają manipulowanie danymi w tej samej lub innych tabelach, wymuszanie ograniczeń lub wykonywanie innych działań. Wyzwalacze są wykonywane w zakresie transakcji i można je zdefiniować tak, aby były wykonywane przed lub po zdarzeniu wyzwalającym.

P3: Jakie są korzyści ze stosowania wyzwalaczy SQL?

Odpowiedź:

Korzyści ze stosowania wyzwalaczy SQL obejmują:

Integralność danych: wyzwalacze umożliwiają egzekwowanie złożonych reguł biznesowych i ograniczeń na poziomie bazy danych, zapewniając spójność i dokładność danych.

Automatyzacja: wyzwalacze mogą automatyzować powtarzalne lub złożone zadania, wykonując predefiniowane działania za każdym razem, gdy wystąpi określone zdarzenie. Zmniejsza to potrzebę ręcznej interwencji i poprawia wydajność.

ile tygodni ma miesiąc

Ścieżki audytu: wyzwalaczy można używać do śledzenia zmian wprowadzonych w danych, takich jak rejestrowanie modyfikacji w osobnej tabeli audytu. Pomaga to w kontrolowaniu i utrzymywaniu historii zmian danych.

Walidacja danych: wyzwalacze mogą przeprowadzać dodatkowe kontrole walidacyjne danych przed ich wstawieniem, aktualizacją lub usunięciem, zapewniając, że w bazie danych będą przechowywane wyłącznie ważne i zgodne dane.