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

Автор: Laura McKinney
Дата На Създаване: 1 Април 2021
Дата На Актуализиране: 16 Може 2024
Anonim
Колоритная дама желает познакомиться ► 2 Прохождение Resident Evil Village
Видео: Колоритная дама желает познакомиться ► 2 Прохождение Resident Evil Village

Съдържание


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

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

  1. Сравнителна диаграма
  2. дефиниция
  3. Ключови разлики
  4. заключение

Сравнителна диаграма

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


Определение на Trigger

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

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

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

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

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


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

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

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

Процедурата може да се приеме като програмна единица, създадена за изпълнение на някаква задача и тя се съхранява в базата данни. Те се извикват от SQL оператора, когато се изисква. Процедурите са като дефинирани от потребителя функции, които са определени от разработчиците. Процедурите могат да бъдат извикани чрез ОБАДИ СЕ или ИЗПЪЛНИ.

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

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

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

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

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

ОБАДИ СЕ () ;

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

Заключение:

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