Knowledge Administración de Sistemas Administración de Sistemas
Este material didáctico forma parte del Curso online de Introducción a SQL Server 2012

SQL Server 2012: los desencadenadores INSERT

Descarga en este enlace el archivo de texto con los ejemplos que veremos a continuación.    Ejemplos

Este tipo de desencadenadores se usan para modificar, o deshabilitar un registro que se está insertando. También se utilizan para llevar a cabo una serie de cambios en cadena en otras tablas.

Por ejemplo: podríamos guardar en una tabla quién almacena y en qué fecha y hora un registro en una determinada tabla.

Un desencadenador INSERT se activa o se ejecuta en el momento en que alguien trata de insertar un nuevo registro en una tabla mediante la instrucción INSERT. Cuando esto se produce SQL Server copia el nuevo registro en una tabla de la base de datos conocida como tabla de desencadenadores y en otra tabla especial que se almacena en memoria denominada tabla inserted. Por lo tanto el nuevo registro que tratamos de añadir se encuentra a su vez en dos tablas (desencadenadores e inserted) antes de ser añadido en la tabla de destino.

La tabla inserted se utiliza para llevar a cabo los cambios en cascada en otras tablas.

Vamos a situarnos en la base de datos "Ventas" que hemos creado en este mismo curso. Cuando realizamos o cerramos una venta de un determinado producto la cantidad de stock en el almacén de este producto debería actualizarse.

Para llevar a cabo esta actualización tenemos dos opciones. La primera es recoger en una variable la cantidad de ese producto que se ha vendido para realizar la actualización en la tabla "Almacen". Por lo tanto llevamos hasta tres diferentes tareas:

1
  • Insertar el registro en la tabla ventas.
2
  • Recoger la cantidad del producto vendida.
3
  • Actualizar el registro de ese producto restando la cantidad vendida en su almacén.
Descarga en este enlace el archivo de texto con los ejemplos que veremos a continuación: Ejemplos

La otra opción que tenemos es utilizar la tabla inserted los detalles de la venta que se trata de añadir y aplicar los cambios en el la tabla "Almacen" en un desencadenador.

Vamos a llevar a la práctica este ejemplo.

 

Para poder comprobarlo necesitamos añadir una serie de registros en la tablas de la base de datos "Ventas".

En la base de datos "Ventas" abrimos una nueva consulta para escribir el código que añade un grupo de registros en la tabla "Almacen".

 

Añadimos otro grupo de registros para la tabla "Empleados".

 

Y por último añadimos un par de clientes en la tabla "Clientes".

 

Una vez que tenemos rellenadas con algo de información  nuestras tablas, vamos a ver el proceso de creación del desencadenador.

 

Se nos muestra una nueva ventana con la plantilla para crear desencadenadores:

 

Al pulsar en ejecutar el nuevo procedimiento almacenado es creado y almacenado en la carpeta desencadenadores:

 

Ejecutamos esta sentencia SQL y el resultado nos muestra que efectivamente el desencadenado a restado las unidades de monitores vendidas.

Desencadenadores INSERT
 

Este contenido didáctico abierto está extraído del Curso online de Introducción a SQL Server 2012.

Amplía tus conocimientos con el Curso Online de Introducción a SQL Server 2012

Puedes continuar ahora la formación matriculándote en el curso, o si lo prefieres, consultar nuestro catálogo con cerca de 400 actividades formativas acreditadas.

Benefíciate del crédito para formación bonificando el curso.

Este sitio web utiliza cookies de terceros con la finalidad de analizar el uso que hace de nuestra web y personalizar el contenido de los anuncios. Si continúa navegando entendemos que acepta su uso. Más información