Documentos de Académico
Documentos de Profesional
Documentos de Cultura
2 de septiembre de 2015
Items Descripción
Instructivo Técnico Utilización de Triggers en Base de
Datos
Fecha Creación Septiembre de 2015
Diseñado Por Dulfran A. Montaño M.
Categoría Base de Datos
Nivel Avanzado
Herramienta SQLSERVER
Introducción
Que es un Triggers: Los Triggers o Disparadores son objetos que se asocian con tablas
y se almacenan en la base de datos. Su nombre se deriva por el comportamiento que
presentan en su funcionamiento, ya que se ejecutan cuando sucede algún evento sobre
las tablas a las que se encuentra asociado. Los eventos que hacen que se ejecute un
trigger son las operaciones de inserción (INSERT), borrado (DELETE) o actualización
(UPDATE), ya que modifican los datos de una tabla.
Fuente: https://es.wikipedia.org/wiki/Trigger_(base_de_datos)
Antes que todo tendremos en cuenta un breve repaso sobre el lenguaje SQL
instrucciones (INSERT, DELETE, UPDATE)
UPDATE "nombre_tabla"
SET "columna_1" = [nuevo valor]
WHERE "condición"
Lo primero que haremos será crear una base de datos nueva en SQLSERVER, en
mi caso estoy utilizando la versión 2008.
Figura 1.
Figura 2.
Figura 3.
Figura 4.
Figura 5.
Como podemos observar en la Figura 5, ingresamos todos los campos que harán
parte de la tabla que vamos a crear asociándole el tipo de datos que esta
contendrá, y luego damos clic en la pestaña de la tabla y damos clic en guardar y
procedemos a colocarle el nombre a la tabla, como podemos observar en la
Figura 5, se utiliza tbl primero del nombre de la tabla, quedando por consiguiente
con el nombre (tblclientes), esto se utiliza para identificar la tabla, es un estándar
de diseño en base de datos, de esta manera procedemos a crear las demás
tablas, a continuación les asocio los campos y tablas que tendrá nuestro diseño.
Diseñado por: Ing. Dulfran A. Montaño M.
2 de septiembre de 2015
A continuación asocio el script para crear las tablas de la base de datos, que
encontraremos en el documento llamado script_bdsbancoadsi2015.pdf
Figura 6.
Luego de tener todos estos aspectos y nuestra base de datos creada, relacionada
y normalizada procedemos a crear el triggers.
Lo primero que debemos tener en cuenta es que con los conceptos que
trabajamos anteriormente un triggers se ejecuta de acuerdo a unas condiciones,
estas son instrucciones que permiten disparar la función (INSERT, UPDATE,
DELETE), recordemos que los Triggers se ejecutan en las tablas teniendo en
cuenta las funciones mencionadas, si observamos un poco el diagrama entidad
relación expuesto anteriormente nos damos cuenta que en este caso la forma de
afectar el saldo de una cuenta asociada a un cliente es por medio de una
transferencia las cuales pueden ser las siguientes, (1.Consignacion 2.Retiro
3.Traslado), teniendo en cuenta esto, nuestro triggers debe ejecutarse en la tabla
transferencias debido a que cada vez que se realice una nueva transferencia
afectara la tabla de cuentas, las cuales están asociadas a un cliente en particular,
entonces procedemos a insertar el triggers.
Figura 7.
En la Figura 7 podemos observar que dando clic en el botón (+) que se encuentra
al lado de la tabla nos permite desplegar las opciones que podemos programar de
nuestra tabla.
Diseñado por: Ing. Dulfran A. Montaño M.
2 de septiembre de 2015
Figura 8.
Figura 9.
Figura 10.
Como podemos observar en la Figura 10, seleccionamos las líneas que aparecen
en color verde, esto es porque estas líneas solo son comentarios asociados al
triggers, entonces procedemos a eliminarlos.
Figura 11.
Figura 12.
Figura 13.
Figura 14.
Como podemos observar en la Figura 14, como queda nuestro codigo después de
realizar las respectivas modificaciones, en este caso nuestro triggers se llama
(nueva_transferencia), la tabla en la cual se desencadenara el triggers es la tabla
(tbltransferencias), y se ejecutara cada vez que detecte una nueva inserción
(INSERT) en la tabla asociada.
Figura 15.
En la Figura 15, podemos observar el lugar donde ubicaremos las variables que
obtendrán los valores para realizar la operación del triggers a continuación
veremos este proceso.
Diseñado por: Ing. Dulfran A. Montaño M.
2 de septiembre de 2015
Figura 16.
Figura 17.
Como podemos observar en la Figura 17, este segmento de código nos permite
recibir los valores de las consultas SQL realizadas en este caso por ejemplo
encontramos el segmento que dice:
Figura 18.
Figura 19.
if(@tipo_mov = 3)
begin
--restar cuenta origen
select @nuevo_saldo = @saldo_cuenta - @monto_trans
update tblcuentas
set saldo = @nuevo_saldo
where
n_cuenta = @n_cuenta_or
--sumar cuenta destino
declare @saldo_destino money
select @saldo_destino = saldo
from tblcuentas
where
n_cuenta = @n_cuenta_dest
declare @nuevo_saldodest money
select @nuevo_saldodest = @saldo_destino
+ @monto_trans
update tblcuentas
set saldo = @nuevo_saldodest
where
n_cuenta = @n_cuenta_dest
end
En este segmento de código estamos realizando la suma del saldo que tiene la
cuenta destino con el monto que se está transfiriendo.
update tblcuentas
set saldo = @nuevo_saldodest
where
n_cuenta = @n_cuenta_dest
end
En este segmento de código estamos realizando la actualización del valor anterior
que tenía la cuenta destino con el nuevo valor después de la transferencia
realizada.
Por ultimo lo que nos resta hacer es ejecutar el triggers para que quede
almacenado en el servidor.
Diseñado por: Ing. Dulfran A. Montaño M.
2 de septiembre de 2015
Figura 20.
Figura 21.
Figura 22.
Figura 23.
Antes de realizar esto, primero debemos verificar que datos tenemos agregados
en nuestras tablas y si no los tenemos los agregamos.
Figura 24.
este caso lo estamos haciendo utilizando el diseño de las tablas ósea el asistente
visual pero también lo podemos hacer utilizando comandos SQL.
Verificamos la tabla tblcuentas, que contiene las tablas inscritas de los clientes y
que les pertenecen a estos.
Figura 25.
Figura 26.
Manera No 1.
Figura 27.
Diseñado por: Ing. Dulfran A. Montaño M.
2 de septiembre de 2015
Figura 28.
Figura 29.
Figura 30.
Figura 31.
Manera No 2.
Figura 32.
Lo primero que debemos hacer es crear una nueva consulta a la base de datos
que queremos afectar como se ilustra en la Figura 32, y como podemos darnos
cuenta nos genera una pestaña para realizar la codificación de la consulta SQL.
Diseñado por: Ing. Dulfran A. Montaño M.
2 de septiembre de 2015
Figura 33.
Figura 34.
Antes de la Transferencia
Después de la Transferencia
Espero que este instructivo sea de mucha ayuda para todos ustedes, y recuerden
la siguiente frase: “si buscas resultados diferentes, no hagas siempre lo mismo”,
Albert Einstein
Felices códigos
DULFRAN A. MONTAÑO M.
Información de Contacto:
Correo: ing_dmontano@misena.edu.co
Skype: ing_dmontano