14/08/2011, 16:18
|
| Moderador criollo | | Fecha de Ingreso: noviembre-2007 Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años Puntos: 2658 | |
Respuesta: Procedimientos almacenados y Triggers Hay una diferencia muy básica entre triggers y stored procedures: Los triggers son procedimientos qeue se ejecutan automáticamente, cuando se produce un evento sobre el que se quiere trabajar. Existen tres tipos de eventos que pueden disparar un trigger: INSERT, DELETE y UPDATE.
El trigger se programa para realizar una tarea determinada que se deba hacer siempre que se produzca el evento. No requiere intervención humana o programática y no se puede detener.
Tiene algunas características:
1) No recibe parámetros de entrada o salida.
2) Los únicos valores de entrada son los correspondientes a los de las columnas que se insertan, y sólo son accesibles por medio de ciertas pseudovariables (NEW y OLD).
3) No se puede ejecutar una operación INSERT/UPDATE/DELETE sobre la misma tabla donde el TRIGGER se está ejecutando.
4) No se puede ejecutar una tarea sobre otra tabla, si la segunda tiene un trigger que afecte a la tabla del primer trigger en ejecución (circularidad).
5) No se puede invocar procedures desde un TRIGGER.
6) No se puede invocar un SELECT que devuelva una tabla resultado en el TRIGGER.
7) Otros.
Un stored procedure es un procedimiento almacenado que debe ser invocado para ejecutarse.
1) Puede recibir parámetros y devolver parámetros.
2) Puede manejar cualquier tabla, realizar operaciones con ellas y realizar iteraciones de lectura/escritura.
3) Puede devolver una tabla como resultado.
también valores dentro de los parámetros del prototipo si los mismos son también de salida.
4) Existen en la base donde se crean, pero no dependen de ninguna tabla.
5) Pueden aceptar recursividad (pero no es recomendable).
6) otras características.
O sea: No son la misma cosa.
__________________ ¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente... "El problema es la interfase silla-teclado." (Gillermo Luque) |