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ównania | Wyzwalacze | Procedury |
---|---|---|
Podstawowy | Są one automatycznie wykonywane po wystąpieniu określonego zdarzenia. | Mogą być wykonywane, gdy jest to wymagane. |
Powołanie | Wyzwalacze nie mogą być wywołane wewnątrz procedury. | Ale możesz wywołać procedurę wewnątrz wyzwalacza. |
Parametr | Nie możemy przekazać parametrów do wyzwalaczy. | Możemy przekazać parametry do procedur. |
Powrót | Wyzwalacz 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ą
- 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.
- 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.
- Możemy przekazać parametry do procedur, ale nie możemy przekazać parametrów do uruchomienia, ponieważ nie jest on wywoływany przez nas.
- 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ę.