Sie sind auf Seite 1von 4

Guía: 18

Alexander Montecua Pinilla


1101 Jm
1. ¿Qué un desencadenador?
Un desencadenador es una clase especial de procedimiento
almacenado que se ejecuta automáticamente cuando se produce un
evento en el servidor de bases de datos. SQL Server permite crear
varios desencadenadores para una instrucción específica.
2. ¿Dónde se almacenan los desencadenadores?
En el explorador de objetos “SQL Server Management “Studio
ingresa a la base de datos >> Tablas >> MiTabla >>
Desencadenadores, y aparecerán listados los triggers de esa tabla.
Puede hacerle click derecho al trigger >> Incluir Trigger Como >>
CREATE TO >> Nueva Ventana del Editor de Consultas, y se te abrirá
una nueva ventana con el script de creación del trigger.
3. ¿Cuál es objetivo de los desencadenadores?
Estos desencadenadores se activan cuando se desencadena
cualquier evento válido, con independencia de que las filas de la
tabla se vean o no afectadas.
4. ¿Cuáles son las acciones para que un desencadenador se ejecute?
En Pl/Pgsql una función disparadora se crea con el comando SQL
CREATE FUNCTION sin argumentos y que devuelve un tipo de datos
trigger (RETURNS trigger), mientras que los argumentos del
disparador son pasados mediante la variable TG_ARGV (creando un
array con los argumentos pasados desde la sentencia Create
Trigger).

En la función hemos definido que, una vez se inserte una nueva


geometría se actualicen los campos identificador (gid) y área de
forma automática, para ello emplearemos la función ST_Area.
Además hemos indicado que la interfaz arroje un mensaje (RAISE
NOTICE) indicando el tipo de acción y el identificador de la fila
actualizada.
5. ¿Qué es INSERTED y DELETED en un desencadenador?
Podemos especificar las tablas virtuales INSERTED y DELETED,
donde indicaremos que se dispare después de un INSERT, UPDATE o
DELETE y que haga una consulta a las tablas lógicas antes
mencionadas para ver su contenido.

6. ¿En qué momento se crea INSERTED y DELETED?


Los triggers definen dos tablas especiales que contienen toda la
información que necesitamos: inserted y deleted. Ambas son
subconjuntos de la tabla que contiene el trigger, justamente con los
registros que nos interesan: los afectados por la sentencia
desencadenante.

inserted contiene los registros con los nuevos valores para triggers
que se desencadenan con sentencias INSERT (nuevos registros) y
UPDATE (nuevo valor para registros actualizados).

Deleted, por su parte, contiene los registros con los viejos valores
para triggers que se desencadenan con sentencias DELETE (registros
borrados) y UPDATE (valor anterior para los registros actualizados).

Así pues, en un trigger definido como AFTER INSERT sólo


dispondremos de la tabla inserted, en uno definido como AFTER
DELETE solamente tendremos la tabla deleted, mientras que,
finalmente, ambas tablas estarán disponibles en triggers definidos
para ejecutarse tras un UPDATE con AFTER UPDATE, pudiendo
consultar así de los valores antes y después de actualizarse los
registros correspondientes.
Así pues, podemos pensar ahora en cómo reescribir el trigger
anterior para que solamente los registros afectados actualicen el
valor del campo Fecha en Tabla1.

7. ¿Difiera entre procedimientos almacenados y desencadenadores?


Un procedimiento almacenado es un grupo de instrucciones
Transact-SQL Server se compila una vez y se puede ejecutar muchas
veces.
La ejecución del procedimiento almacenado aumenta el
rendimiento (porque no es necesario volver a compilar las
instrucciones Transact-SQL.

8. ¿Qué hace SP_HELPTRIGGER?


Sirve para mostrar los desencadenadores de una tabla examina los
metadatos para el lenguaje de modificación de datos activa para
una tabla especificada. Los parámetros incluyen nombre de la tabla
y el tipo de disparo (INSERT, UPDATE o DELETE); si no se especifica
el tipo de disparo se devuelven todos los tipos de disparo. Las
consultas de procedimiento sys.objects vista de catálogo. La salida
incluye el nombre del disparador y propietario, tipo de disparo, si se
trata de un DESPUES o en lugar de gatillo, y el esquema de disparo.
9. ¿Consulte acerca de los tipos de triggers o desencadenadores
existen y cuáles son sus limitaciones.
DML
Los desencadenadores DML: se invocan cuando un evento de
lenguaje de manipulación de datos (DML) tiene lugar en la base de
datos
DDL
Los desencadenadores DDL son un tipo especial de desencadenador
que se activa en respuesta a instrucciones del lenguaje de definición
de datos (DDL), como auditar y regular las operaciones de base de
datos.

Das könnte Ihnen auch gefallen