Препоръчано, 2024

Избор На Редактора

Разлика между тригера и процедурата

Тригерът и процедурата са компонент на Advanced SQL. Тригерът и процедурата изпълняват определена задача за тяхното изпълнение. Основната разлика между Trigger и Процедура е, че Trigger се изпълнява автоматично при възникване на събитие, докато Процедурата се изпълнява, когато е изрично извикана.

Нека обсъдим някои различия между Trigger и Процедура с помощта на таблица за сравнение, показана по-долу.

Сравнителна таблица

Основа за сравнениетригериПроцедури
ОсновенТе се изпълняват автоматично при възникване на определено събитие.Те могат да се изпълняват при необходимост.
повикванеТригерите не могат да бъдат извикани вътре в процедурата.Но можете да извикате процедура вътре в спусъка.
параметърНе можем да прехвърляме параметри към тригерите.Можем да предаваме параметри на процедури.
връщанеТригерът никога не връща стойност при изпълнение.Процедурата може да върне стойност / s при изпълнение.

Дефиниция на тригер

Тригерът е като процедура, която се изпълнява автоматично при възникване на определено събитие. Подобно на процедурата, тригерът не трябва да се извиква изрично. Тригерите се създават, за да изпълняват някаква задача в отговор на възникването на определено събитие.

Тригерът може да бъде извикан в отговор на DDL изрази (DELETE, INSERT, или UPDATE), или DML изрази (DELETE, INSERT, или UPDATE) или, към някои операции на базата данни (SERVERERROR, LOGON, LOGOFF, STARTUP или SHUTDOWN).

Тригерът се състои от три компонента, както е описано по-долу:

  • Събитие : Събитието е възникване на някакъв инцидент, който ще предизвика изпълнението на спусъка. Спусъкът може да бъде нареден да изпълни или ПРЕДИ да се случи събитие, или може да бъде наредено да се изпълни СЛЕД изпълнение на събитие.
  • Условие : Това е опционална част от спусъка. Ако не е споменато, спусъка ще се изпълни, когато се появи определеното събитие. Ако условието е посочено, то ще провери правилата, за да определи дали тригерът трябва да бъде изпълнен.
  • Действие : Действието е набор SQL изрази, които ще бъдат изпълнени при изпълнението на Trigger.

Общата форма на създаване на събитие е разгледана по-долу:

 СЪЗДАЙТЕ ТРИГЕРА ПРЕД / СЛЕД ДЕЙСТВИЕТО НА УСЛОВИЯ; 

Тук условието не е задължително.

Определение на процедурите

Процедурата може да бъде приета като програмна единица, създадена да изпълнява някаква задача и се съхранява в базата данни. Те се извикват от SQL изявлението, когато е необходимо. Процедурите са като потребителски дефинирани функции, определени от разработчиците. Процедурите могат да бъдат извикани чрез CALL или EXECUTE .

Процедурите са полезни в следните ситуации:

  • Ако процедурата се изисква от няколко други приложения, тя може да бъде съхранена на сървъра, така че да могат да бъдат извикани от всяко приложение. Това ще намали усилията за дублиране на процедурата от една база данни в друга и ще подобри модулността на софтуера.
  • Тъй като процедурата се изпълнява на сървъра, тя ще намали преноса на данни и ще намали разходите за комуникация.
  • Процедурите могат да се използват за проверка на сложните ограничения, които са извън възможностите на спусъка.

Нека обсъдим общата форма на създаване на процедура:

 СЪЗДАВАНЕ НА ПРОЦЕДУРА () ВРЪЩАНЕ; 

Тук параметрите и местните декларации не са задължителни. Те се споменават само когато са необходими. Изложението по-долу описва извикването на процедурите.

 ОБАДЕТЕ СЕ () ; 

Основни разлики между тригера и процедурата

  1. Основната разлика между тригера и процедурата е, че тригерът е израз, който се извиква автоматично при възникване на събитие. От друга страна, процедурата се извиква, когато е необходимо.
  2. Може да се дефинира процедура вътре в спусъка. Но, тригер никога не е дефиниран вътре в процедурата, тъй като тригерът трябва да бъде извикан автоматично при възникване на всяко събитие.
  3. Можем да предаваме параметри на процедури, но не можем да прехвърляме параметри за задействане, тъй като не се извикваме от нас.
  4. Една процедура може да върне стойностите на параметрите или кода, но спусъка не може.

Заключение:

Тригерите са полезни, но те се избягват, ако съществуват алтернативи на тях, тъй като увеличават сложността на данните. Понякога тригерите също са заместители по подходяща процедура.

Top