ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Ensayo Disparadores Base De Datos

olizardo2 de Febrero de 2013

611 Palabras (3 Páginas)801 Visitas

Página 1 de 3

Tema: Disparadores – Parte II.

Objetivo

 Utilizar la sintaxis de un disparador en SQL Server

 Implementar disparadores en SQL Server

Materiales y

 Computadora con SQL Server 2008.

 Guía Número 11

Introducción

Un desencadenador es una clase especial de procedimiento almacenado que se ejecuta siempre que se intenta modificar los datos de una tabla que el desencadenador 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 ejecuta automá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 secuencia de 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 el desencadenador, los sucesos para los que se ejecuta y las instrucciones que contiene.

2 Base de datos I, Guía 11

Sintaxis:

Cuando se especifica una acción FOR UPDATE, la cláusula IF UPDATE (nombreColumna) permite centrar la acción en una columna específica que se actualice. Tanto FOR como AFTER son sintaxis equivalentes que crean el mismo tipo de desencadenador, que se activa después de la acción (INSERT, UPDATE o DELETE) que ha iniciado el desencadenador.

Procedimiento

Inserte los siguientes datos en la tabla employees de la Base de datos Northwind

insert into Employees(LastName,FirstName) values('Alfaro','Carlos') insert into Employees(LastName,FirstName) values('Bonilla','Jaime') insert into Employees(LastName,FirstName) values('Perez','Sheldon')

Ejemplo 1 digite el siguiente trigger

La instrucción DELETE siguiente activa el desencadenador y evita la transacción.

DELETE FROM Employees WHERE EmployeeID > 10

La instrucción DELETE siguiente activa el desencadenador y permite la transacción.

DELETE FROM Employees WHERE EmployeeID = 11

Base de datos I. Guía 10 3

Ejemplo 2 Disparador en base a una columna

El trigger anterior despues de actualizar la columna lastname se active y envía un mensaje, pruebe con la siguiente instrucción

UPDATE Employees set LastName='Quintanilla' where EmployeeID=12

Modificando un desencadenador

Al cambiar la definición se reemplaza la definición existente del desencadenador por la nueva. También es posible alterar la acción del desencadenador. Por ejemplo, si crea un desencadenador para INSERT y, posteriormente, cambia la acción por UPDATE, el desencadenador modificado se ejecutará siempre que se actualice la tabla. La resolución diferida de nombres permite que en un desencadenador haya referencias a tablas y vistas que aún no existen. Si el objeto no existe en el momento de crear el desencadenador, aparecerá un mensaje de advertencia y SQL Server actualizará la definición del desencadenador inmediatamente.

Ejemplo 2

Eliminación de un desencadenador

Si desea eliminar un desencadenador, puede quitarlo. Los desencadenadores se eliminan automáticamente cuando se elimina la tabla a la que están asociados. De forma predeterminada, el permiso

...

Descargar como (para miembros actualizados) txt (4 Kb)
Leer 2 páginas más »
Disponible sólo en Clubensayos.com