Рекомендуємо, 2022

Вибір Редакції

Різниця між тригером і процедурою

Тригером і процедурою є компонент Advanced SQL. Тригер і процедура як виконують задане завдання по їх виконанню. Принципова відмінність між тригером і процедурою полягає в тому, що тригер виконується автоматично при появі події, тоді як процедура виконується, коли вона явно викликається.

Давайте обговоримо деякі додаткові відмінності між тригером і процедурою за допомогою діаграми порівняння, показаної нижче.

Діаграма порівняння

Основа для порівнянняТригериПроцедури
ОсновнийВони автоматично виконуються при виникненні вказаної події.Вони можуть бути виконані в будь-який час.
ВикликТригери не можна викликати всередині процедури.Але, ви можете викликати процедуру всередині тригера.
ПараметрМи не можемо передавати параметри тригерам.Ми можемо передавати параметри процедурам.
ПоверненняТригер ніколи не повертає значення при виконанні.Процедура може повернути значення / с при виконанні.

Визначення тригера

Тригер подібний до процедури, яка виконується автоматично при виникненні вказаної події. Як і процедура, тригер не потрібно називати явно. Тригери створюються, щоб виконати деяке завдання у відповідь на виникнення деякого зазначеного події.

Тригер може бути викликаний у відповідь на DDL- висловлювання (DELETE, INSERT або UPDATE) або DML- висловлювання (DELETE, INSERT або UPDATE) або на деякі операції бази даних (SERVERERROR, LOGON, LOGOFF, STARTUP або SHUTDOWN).

Тригер складається з трьох компонентів, як описано нижче:

  • Подія : подія - це випадок деякого інциденту, який викличе виконання тригера. Тригер може бути впорядкований для виконання або перед тим, як відбудеться подія, або може бути наказано виконати після виконання події.
  • Умова : це необов'язкова частина тригера. Якщо не згаданий тригер буде виконуватися як зазначена подія відбувається. Якщо умова вказана, то перевірятимуться правила, щоб визначити, чи слід виконувати тригер.
  • Action : Action - це набір операторів SQL, які будуть виконуватися при виконанні тригера.

Загальна форма створення події розглядається нижче:

 СТВОРИТИ ТРИГГЕР ПЕРЕД / ПІСЛЯ ДІЇ УМОВУ; 

Тут умова є необов'язковою.

Визначення процедур

Процедура може бути прийнята як програмний блок, створений для виконання деякого завдання і він зберігається в базі даних. Вони запускаються за допомогою оператора SQL, коли це потрібно. Процедури подібні до визначених користувачем функцій, які визначаються розробниками. Процедури можна викликати за допомогою CALL або EXECUTE .

Процедури корисні в наступних ситуаціях:

  • Якщо процедура вимагається декількома іншими програмами, то вона може зберігатися на сервері так, щоб їх можна було викликати будь-якою програмою. Це дозволить зменшити зусилля дублювання процедури з однієї бази даних на іншу, а також покращить модульність програмного забезпечення.
  • Оскільки процедура виконується на сервері, вона зменшить передачу даних і зменшить вартість зв'язку.
  • Процедури можуть використовуватися для перевірки складних обмежень, які виходять за межі тригера.

Розглянемо загальну форму створення процедури:

 СТВОРИТИ ПРОЦЕДУРУ () ВІДНОВЛЕННЯ; 

Тут параметри та локальні декларації є необов'язковими. Вони згадуються лише тоді, коли вони потрібні. У наведеному нижче описі описано виклик процедур.

 CALL (); 

Основні відмінності між тригером і процедурою

  1. Основною відмінністю між тригером і процедурою є те, що тригер - це оператор, який автоматично викликається, коли відбувається подія. З іншого боку, процедура викликається, коли це потрібно.
  2. Можна визначити процедуру всередині тригера. Але тригер ніколи не визначається всередині процедури, оскільки тригер повинен бути викликаний автоматично при виникненні будь-якої події.
  3. Ми можемо передавати параметри процедурам, але ми не можемо передавати параметри, щоб викликати, як це не викликається нами.
  4. Процедура може повертати значення параметрів або код, але тригер не може.

Висновок:

Тригери корисні, але вони уникаються, якщо існують які-небудь альтернативи їм, оскільки це збільшує складність даних. Іноді тригери також є замінниками відповідної процедури.

Top