Zalecane, 2019

Wybór Redakcji

Różnica między wyzwalaczem a procedurą

Wyzwalanie i procedura są składnikiem zaawansowanego SQL. Procedura wyzwalacza i procedura wykonują określone zadanie podczas ich wykonywania. Podstawową różnicą między wyzwalaczem a procesem jest to, że wyzwalacz wykonuje się automatycznie po wystąpieniu zdarzenia, podczas gdy procedura jest wykonywana, gdy jest jawnie wywoływana.

Omówmy nieco więcej różnic między wyzwalaczem a procesem za pomocą poniższej tabeli porównawczej.

Wykres porównania

Podstawa do porównaniaWyzwalaczeProcedury
PodstawowySą one automatycznie wykonywane po wystąpieniu określonego zdarzenia.Mogą być wykonywane, gdy jest to wymagane.
PowołanieWyzwalacze nie mogą być wywołane wewnątrz procedury.Ale możesz wywołać procedurę wewnątrz wyzwalacza.
ParametrNie możemy przekazać parametrów do wyzwalaczy.Możemy przekazać parametry do procedur.
PowrótWyzwalacz nigdy nie zwraca wartości podczas wykonywania.Procedura może zwrócić wartość / s podczas wykonywania.

Definicja wyzwalacza

Wyzwalanie jest jak procedura, która jest wykonywana automatycznie po wystąpieniu określonego zdarzenia. Podobnie jak w przypadku procedury, wyzwalacz nie musi być wywoływany jawnie. Wyzwalacze są tworzone, aby wykonać pewne zadanie w odpowiedzi na wystąpienie określonego zdarzenia.

Wyzwalacz można wywołać w odpowiedzi na instrukcje DDL (DELETE, INSERT lub UPDATE) lub instrukcje DML (DELETE, INSERT lub UPDATE) lub w przypadku niektórych operacji na bazach danych (SERVERERROR, LOGON, LOGOFF, STARTUP lub SHUTDOWN).

Triger składa się z trzech komponentów, jak omówiono poniżej:

  • Zdarzenie : Zdarzenie jest wystąpieniem zdarzenia, które spowoduje wykonanie wyzwalacza. Wyzwalacz można zlecić do wykonania PRZED zdarzeniem lub zleceniem wykonania po wykonaniu zdarzenia.
  • Warunek : Jest to opcjonalna część wyzwalacza. Jeśli nie wspomniano, wyzwalacz zostanie wykonany, gdy wystąpi określone zdarzenie. Jeśli ten warunek zostanie określony, to sprawdzi reguły, aby określić, czy wyzwalacz powinien zostać wykonany.
  • Działanie : Akcja to zestaw instrukcji SQL, które zostaną wykonane po uruchomieniu wyzwalacza.

Ogólna forma tworzenia wydarzenia jest omówiona poniżej:

 UTWÓRZ PRZEWOŹNIK PRZED / PO AKCJI KONDYCJONALNEJ; 

W tym przypadku warunek jest opcjonalny.

Definicja procedur

Procedura może być traktowana jako jednostka programowa, stworzona do wykonywania niektórych zadań i przechowywana w bazie danych. W razie potrzeby są wywoływane przez instrukcję SQL. Procedury są podobne do zdefiniowanych przez programistów funkcji zdefiniowanych przez użytkownika. Procedury można wywoływać za pomocą CALL lub EXECUTE .

Procedury są przydatne w następujących sytuacjach:

  • Jeśli procedura jest wymagana przez kilka innych aplikacji, może być przechowywana na serwerze, aby mogły być wywoływane przez dowolną aplikację. Zmniejszy to wysiłek związany z powielaniem procedury z jednej bazy danych do drugiej, a także zwiększy modułowość oprogramowania.
  • Ponieważ procedura jest wykonywana na serwerze, redukuje transfer danych, a także zmniejsza koszty komunikacji.
  • Procedury można wykorzystać do sprawdzenia złożonych ograniczeń, które są poza możliwościami wyzwalacza.

Omówmy ogólną formę tworzenia procedury:

 CREATE PROCEDURE () ZWROTY; 

W tym przypadku parametry i lokalne deklaracje są opcjonalne. Są one wymienione tylko wtedy, gdy są wymagane. Poniższe stwierdzenie opisuje wywoływanie procedur.

 POŁĄCZENIE () ; 

Kluczowe różnice między wyzwalaczem a procedurą

  1. Podstawową różnicą między wyzwalaczem a procedurą jest to, że wyzwalacz jest instrukcją, która jest wywoływana automatycznie po wystąpieniu zdarzenia. Z drugiej strony procedura jest wywoływana zawsze, gdy jest wymagana.
  2. Można zdefiniować procedurę wewnątrz wyzwalacza. Jednak wyzwalacz nigdy nie jest zdefiniowany w procedurze, ponieważ wyzwalacz musi być wywoływany automatycznie po wystąpieniu dowolnego zdarzenia.
  3. Możemy przekazać parametry do procedur, ale nie możemy przekazać parametrów do uruchomienia, ponieważ nie jest on wywoływany przez nas.
  4. Procedura może zwrócić wartości parametrów lub kod, ale wyzwalacz nie może.

Wniosek:

Wyzwalacze są użyteczne, ale unika się ich, jeśli istnieje jakakolwiek alternatywa, ponieważ zwiększa to złożoność danych. Czasami wyzwalacze są również zastępowane przez odpowiednią procedurę.

Top