Cómo crear un trigger o desencadenador1032

Cómo crear un trigger o desencadenador

Un trigger es una clase especial de procedimiento almacenado que se ejecuta automáticamente cuando se produce un evento en el servidor de bases de datos. Los trigger se ejecutan cuando un usuario intenta modificar datos mediante un evento de lenguaje de manipulación de datos (DML). Los eventos DML son instrucciones INSERT, UPDATE o DELETE de una tabla o vista. Estos triggers se activan cuando se desencadena cualquier evento válido, con independencia de que las filas de la tabla se vean o no afectadas.

La sentencia que se utiliza para añadir triggers al esquema de base de datos es CREATE TRIGGER.

La sintaxis general de un trigger es la siguiente:

CREATE TRIGGER <Schema_Name, sysname, Schema_Name>.<Trigger_Name, sysname, Trigger_Name> 
   ON  <Schema_Name, sysname, Schema_Name>.<Table_Name, sysname, Table_Name> 
   AFTER <Data_Modification_Statements, , INSERT,DELETE,UPDATE>
AS 
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

    -- Insert statements for trigger here

END

Los triggers utilizan dos tablas virtuales denominadas inserted y deleted. SQL Server crea y administra automáticamente ambas tablas. La estructura de las tablas inserted y deleted es la misma que tiene la tabla que ha desencadenado la ejecución del trigger.

La tabla virtual Inserted solo está disponible en las operaciones INSERT y UPDATE y en ella están los valores resultantes después de la inserción o actualización.

La tabla Deleted está disponible en las operaciones UPDATE y DELETE, los valores que tiene esta tabla son los anteriores a la ejecución de la actualización o borrado. Es decir, los datos que serán borrados.

No existe una tabla Updated ya que la actualización reside en Deleted e Inserted.

Enseguida veremos un ejemplo de cómo crear triggers en SQL.

  1. Abrimos el Microsofr SQL Server Management Studio
  2. Vamos a nuestra base de datos y extendemos el árbol hasta la tabla que queremos agregar el trigger.
  3. En la carpeta Triggers damos botón derecho de nuestro mouse y damos clic en “New Trigger.
  4. Se abrirá una pestaña con la estructura básica de un Trigger y lo modificamos de acuerdo a nuestras necesidades. En el siguiente ejemplo puedes ver cada una de las instrucciones comentadas para que puedas ver que es lo que hace.

 

--Crea un trigger llamado AddCines
CREATE TRIGGER AddCines 
--Se ejecutara en la tabla Cinemex_Ciudades
   ON  Cinemex_Ciudades
--Se ejecutara despues de un Insert o un Update a la tabla
   AFTER INSERT,UPDATE
AS 
BEGIN
	-- SET NOCOUNT ON impide que se generen mensajes de texto con cada instrucción 
	SET NOCOUNT ON;
    -- Se crea un Insert: cuando se inserten valores en la tabla Cinemex_Ciudades, el trigger insertara un registro en la tabla Cinemex_Cines
    INSERT INTO Cinemex_Cines 
    (ID, IDCiudad, Cine, Direccion)
    SELECT '500', ID, 'Cinemex ' + Ciudad, 'Prueba'
    FROM INSERTED
--Los valores que se insertaran, seran los que esten almacenados en la tabla virtual Inserted
END
GO

Dejanos tus comentarios, dudas o sugerencias y pronto te responderemos.

Compartir

Comentarios (0)

Animate deja un comentario!!!

Eres un humano?

Últimos Tweets

Contáctanos

  • Dirección: Plutarco Elias Calles 243, Granjas México, Iztacalco, DF.

  • Teléfono:55-2712-3820 o 55-4164-9484

  • Email: info@developerji.com