Pojďme diskutovat o některých dalších rozdílech mezi Triggerem a procedurou pomocí srovnávací tabulky uvedené níže.
Srovnávací graf
Základ pro porovnání | Spouští | Postupy |
---|---|---|
Základní | Jsou automaticky prováděny při výskytu zadané události. | Mohou být provedeny kdykoliv je to nutné. |
Povolání | Spouštěče nelze volat uvnitř procedury. | Ale můžete vyvolat proceduru uvnitř spouštěče. |
Parametr | Nemůžeme předávat parametry do spouštěčů. | Můžeme předávat parametry procedurám. |
Vrátit se | Spuštění nikdy nevrátí hodnotu po spuštění. | Postup může vrátit hodnotu / s při provádění. |
Definice spouštěče
Spoušť je podobná proceduře, která se provede automaticky při výskytu určité události. Podobně jako procedura nemusí být spouštěč explicitně volán. Spouštěče jsou vytvořeny pro provedení nějakého úkolu v reakci na výskyt určité určené události.
Spoušť lze vyvolat v reakci na příkazy DDL (DELETE, INSERT nebo UPDATE) nebo příkazy DML (DELETE, INSERT nebo UPDATE) nebo na některé operace databáze (SERVERERROR, LOGON, LOGOFF, STARTUP nebo SHUTDOWN).
Spoušť se skládá ze tří částí, jak je popsáno níže:
- Událost : Událost je výskyt nějakého incidentu, který způsobí spuštění spouštěče. Spoušť může být nařízena k provedení buď PŘED událostí nebo může být nařízena, aby se po provedení události provedla.
- Podmínka : Jedná se o volitelnou část spouštěče. Pokud není zmíněna spoušť, spustí se, jakmile nastane určená událost. Pokud je podmínka zadána, pak zkontroluje pravidla, zda má být spouštěč spuštěn.
- Akce : Akce je sada příkazů SQL, které budou provedeny při spouštění spouštěče.
Obecná forma vytvoření události je popsána níže:
VYTVOŘTE TRIGGER PŘED / PO ZAMĚŘENÍ;
Zde je podmínka nepovinná.
Definice postupů
Tento postup lze považovat za programovou jednotku, vytvořenou pro provádění některých úkolů a uložených v databázi. Jsou vyvolány příkazem SQL, kdykoli je to nutné. Procedury jsou jako uživatelem definované funkce, které jsou definovány vývojáři. Procedury lze vyvolat pomocí CALL nebo EXECUTE .
Tyto postupy jsou užitečné v následujících situacích:
- Pokud je postup vyžadován několika dalšími aplikacemi, může být uložen na serveru tak, aby mohly být vyvolány libovolnou aplikací. Snižuje snahu o duplikaci postupu z jedné databáze do druhé a také zlepšuje modularitu softwaru.
- Vzhledem k tomu, že se postup provádí na serveru, dojde ke snížení přenosu dat a také ke snížení nákladů na komunikaci.
- Postupy lze použít ke kontrole složitých omezení, která přesahují výkon spouštěče.
Pojďme diskutovat o obecné formě vytvoření procedury:
VYTVOŘIT POSTUP () RETURNS;
Parametry a lokální deklarace jsou zde nepovinné. Jsou zmíněny pouze tehdy, když jsou požadovány. Níže uvedené prohlášení popisuje volání procedur.
VOLÁNÍ () ;
Klíčové rozdíly mezi spouštěním a postupem
- Primární rozdíl mezi aktivační procedurou a procedurou je, že spouštěč je příkaz, který se automaticky vyvolá při výskytu události. Na druhé straně je postup uplatněn vždy, když je to požadováno.
- Je možné definovat postup uvnitř spouštěče. Spoušť však není nikdy definována uvnitř procedury, protože spouštěč musí být vyvolán automaticky při výskytu jakékoli události.
- Můžeme předávat parametry procedurám, ale nemůžeme předávat parametry ke spuštění, protože nás nevyvolává.
- Procedura může vrátit hodnoty parametru nebo kód, ale spoušť nemůže.
Závěr:
Spouštěče jsou užitečné, ale je jim zabráněno, pokud existuje nějaká alternativa k nim, protože zvyšuje složitost dat. Někdy jsou spouštěče také náhražky vhodným postupem.