Hola que tal amigos, en ocasiones
necesitamos conocer cuales son los datos insertados, modificados o borrados, es
posible conocer esto para almacenarlos en una tabla donde tengamos el control
de nuestras tablas para su uso posterior, debemos utilizar TRIGGERs o
disparadores.
CREATE TABLE tablaPruebas ( cve TINYINT , nombre VARCHAR(30) , fecha DATE )
Después crearemos nuestro TRIGGER
en el cual podemos especificar las tablas
virtuales INSERTED y DELETED, donde indicaremos que se dispare después de
un INSERT, UPDATE o DELETE y que haga una consulta a las tablas lógicas antes
mencionadas para ver su contenido.
CREATE TRIGGER dbo.triggerTablaPruebas ON tablaPruebas AFTER INSERT, UPDATE, DELETE AS SELECT * FROM deleted; SELECT * FROM inserted;
Insertamos algunos datos:
INSERT INTO tablaPruebas VALUES( 1, 'PEDRO' , '20130101' ) , ( 2 , 'JUAN', '20130403' )
UPDATE tablaPruebas SET nombre = 'LUIS' , fecha = '20101212' WHERE cve = 2
El resultado es:
Es necesario especificar que no existe una tabla virtual
UPDATED, el funcionamiento es parecido o idéntico a eliminar y después
insertar.
Ahora realizamos un DELETE:
DELETE FROM tablaPruebas WHERE cve = 1
Si necesitamos de los valores antes que sufran algún cambio
o si necesitamos llevar la bitácora de cambios, esto es una buena idea que nos
puedes ser de gran ayuda.
SALUDOS!
COMPARTE ESTA INFORMACION SI TE PARECIO INTERESANTE