Sql server ejemplo de un desencadenador (trigger)

Solo disponible en BuenasTareas
  • Páginas : 4 (997 palabras )
  • Descarga(s) : 10
  • Publicado : 21 de agosto de 2010
Leer documento completo
Vista previa del texto
Ejemplo de un Desencadenador
(TRIGGER)

Un desencadenador es una clase especial de procedimiento almacenado que se ejecuta siempre que se intenta modificar los datos de una tabla que eldesencadenador protege. Los desencadenadores están asociados a tablas específicas.

Asociación a una tabla Los desencadenadores se definen para una tabla específica, denominada tabla del desencadenador.Invocación automática Cuando se intenta insertar, actualizar o eliminar datos de una tabla en la que se ha definido un desencadenador para esa acción específica, el desencadenador se ejecutaautomáticamente. No es posible evitar su ejecución.
Imposibilidad de llamada directa A diferencia de los procedimientos almacenados del sistema normales, no es posible invocar directamente los desencadenadores,que tampoco pasan ni aceptan parámetros Si se encuentra una instrucción ROLLBACK TRANSACTION, se deshará toda la transacción. Si a continuación de la instrucción
ROLLBACK TRANSACTION en la secuenciade comandos del desencadenador hay una instrucción, ésta se ejecutará. Los desencadenadores se crean con la instrucción CREATE TRIGGER. Esta instrucción especifica la tabla en la que se define eldesencadenador, los sucesos para los que se ejecuta y las instrucciones que contiene.

Cuando se crea el desencadenador, se define para que se inicie automáticamente cuando se ejecuta un evento delenguaje. SQL Server incluye tres tipos generales de desencadenadores: DML, DDL y de inicio de sesión.

Sintaxis

CREATE TRIGGER trigger_name
ON { table | view }
[ WITH ENCRYPTION ]
{
{ { FOR |AFTER | INSTEAD OF } { [ INSERT ] [ , ] [ UPDATE ] }
[ WITH APPEND ]
[ NOT FOR REPLICATION ]
AS
[ { IF UPDATE ( column )
[ { AND | OR } UPDATE ( column ) ]
[ ...n ]
| IF ( COLUMNS_UPDATED ( ) {bitwise_operator } updated_bitmask )
{ comparison_operator } column_bitmask [ ...n ]
} ]
sql_statement [ ...n ]

Cuando se especifica una acción FOR UPDATE, la cláusula IF UPDATE (nombreColumna)...
tracking img