Diferencia entre disparador y procedimiento

Autor: Laura McKinney
Fecha De Creación: 1 Abril 2021
Fecha De Actualización: 11 Mayo 2024
Anonim
Curso SQL. Triggers I (Disparadores). Vídeo 20
Video: Curso SQL. Triggers I (Disparadores). Vídeo 20

Contenido


El disparador y el procedimiento son componentes de SQL avanzado. Trigger y Procedure realizan una tarea específica en su ejecución. La diferencia fundamental entre Disparador y Procedimiento es que el Desencadenar se ejecuta automáticamente cuando ocurre un evento mientras que, el Procedimiento se ejecuta cuando se invoca explícitamente.

Discutamos algunas diferencias más entre Disparador y Procedimiento con la ayuda de un cuadro de comparación que se muestra a continuación.

  1. Cuadro comparativo
  2. Definición
  3. Diferencias clave
  4. Conclusión

Cuadro comparativo

Bases para la comparaciónDisparadoresProcedimientos
BASIC Se ejecutan automáticamente cuando se produce un evento especificado.Se pueden ejecutar cuando sea necesario.
VocaciónLos disparadores no se pueden llamar dentro de un procedimiento.Pero, puede llamar a un procedimiento dentro de un disparador.
Parámetro No podemos pasar parámetros a los desencadenantes.Podemos pasar parámetros a los procedimientos.
RegresoEl disparador nunca devuelve valor en la ejecución.El procedimiento puede devolver valores / s en la ejecución.


Definición de disparador

El desencadenante es como un procedimiento que se ejecuta automáticamente cuando se produce un evento específico. Al igual que el procedimiento, el activador no necesita ser llamado explícitamente. Se crean disparadores, para realizar alguna tarea en respuesta a la ocurrencia de algún evento especificado.

El desencadenador se puede invocar en respuesta a DDL declaraciones (BORRAR, INSERTAR o ACTUALIZAR), o DML sentencias (DELETE, INSERT o UPDATE) o, en algunas operaciones de la base de datos (SERVERERROR, LOGON, LOGOFF, STARTUP, o SHUTDOWN).

El desencadenante consta de tres componentes como se describe a continuación:

  • Evento: Evento es la ocurrencia de algún incidente que causará la ejecución del disparador. Se puede ordenar que el disparador se ejecute ANTES DE se produce un evento o se le puede ordenar que se ejecute DESPUÉS La ejecución de un evento.
  • Condición: Es una parte opcional del disparador. Si no se menciona, el disparador se ejecutará cuando ocurra el evento especificado. Si se especifica la condición, verificará las reglas para determinar si se debe ejecutar el activador.
  • Acción: La acción es un conjunto de sentencias SQL que se ejecutarán en la ejecución del Trigger.

La forma general de creación de un evento se analiza a continuación:


CREAR GATILLO ANTES DESPUÉS CONDICIÓN ACCIÓN;

Aquí, la condición es opcional.

Definición de procedimientos

El procedimiento se puede tomar como una unidad de programa, creado para realizar alguna tarea y se almacena en la base de datos. Son invocados por la instrucción SQL siempre que sea necesario. Los procedimientos son como las funciones definidas por el usuario definidas por los desarrolladores. Los procedimientos se pueden invocar usando LLAMADA o EJECUTAR.

Los procedimientos son útiles en las siguientes situaciones:

  • Si varias otras aplicaciones requieren el procedimiento, puede almacenarse en el servidor para que cualquier aplicación pueda invocarlo. Reducirá el esfuerzo de duplicación del procedimiento de una base de datos a otra y también mejorará la modularidad del software.
  • A medida que el procedimiento se ejecuta en el servidor, reducirá la transferencia de datos y también el costo de comunicación.
  • Los procedimientos se pueden usar para verificar las restricciones complejas que están más allá del poder del disparador.

Discutamos la forma general de crear un procedimiento:

CREAR PROCEDIMIENTO () DEVOLUCIONES ;

Aquí, los parámetros y las declaraciones locales son opcionales. Se mencionan solo cuando se requieren. La siguiente declaración describe la convocatoria de los procedimientos.

LLAMADA () ;

  1. La diferencia principal entre desencadenador y procedimiento es que un desencadenante es una declaración que se invoca automáticamente cuando se produce un evento. Por otro lado, el procedimiento se invoca siempre que sea necesario.
  2. Uno puede definir el procedimiento dentro de un disparador. Pero, un desencadenante nunca se define dentro de un procedimiento, ya que el desencadenante debe invocarse automáticamente ante la ocurrencia de cualquier evento.
  3. Podemos pasar parámetros a procedimientos, pero no podemos pasar parámetros para que se activen, ya que no los invocamos.
  4. Un procedimiento puede devolver valores de parámetros o código, pero un disparador no puede.

Conclusión:

Los disparadores son útiles, pero se evitan si existe alguna alternativa para ellos, ya que aumenta la complejidad de los datos. A veces, los desencadenantes también son sustitutos de un procedimiento apropiado.