MANUAL DE TRIGGER EN SQL SERVER ELIMINAR CURSO:
BASE DE DATOS II
DOCENTE:
ING. EDWIN CIEZA MOSTACERO
ALUMNOS:
GIL AVALOS PATRICIA
LOZADA RUBY
MANRIQUE NOVOA SAMY
ROLDAN SALINAS RONAL
VALLE MANUEL
INDICE
................................................................................................................................. 4 1.
TRIGGER .................................................................................................................................. 4 1.1 CONCEPTO: ..................................................................................................................... 4 1.2
USO:................................................................................................................................. 4
1.3
UN TRIGGER TIENE ASOCIADO: ...................................................................................... 4
1.4
Limitaciones de los triggers .................................................................................... 5 APLICACIONES TIPICAS DE TRIGGERS ............................................................................ 5 SINTAXIS ESENCIAL DE UN TRIGGER .............................................................................. 5
1.5 1.6 2.
MICROSOFT SQL SERVER ........................................................................................................ 6 2.1 Qué es Microsoft SQL Server .......................................................................................... 6 2.2
A quién le sirve Microsoft SQL Server ............................................................................ 6
2.3
Tipos de Licencia ............................................................................................................. 7
2.4
Por qué elegir Microsoft SQL Server .............................................................................. 7
.................................................................................................................................. 8 1. 2. 3. 4. 5. 6.
Restaurar Backup “NEPTUNO” ................................................................................................ 8 Creación de Base de Datos “BDRegistro” ............................................................................ 11 Crear la tabla “Pais_Eliminado” en la base de datos BDRegistro con los mismos campos de la tabla de la cual vamos a almacenar los registros r egistros eliminados. .................. ........................... ................... .............. .... 12 Usar la base de datos “NEPTUNO” – Crear TRIGGER .......................................................... 13 Eliminar un registro de la tabla País en la base de datos “NEPTUNO”. ................................ 15 Verificar si se guardaron los datos en nuestra nueva tabla – BDRegistro .......................... ................ .......... 16 .................................................................................................................................... 17
................................................................................................................................................... 18
Ilustración 1: Conexión de Servidor a SQL Server 2012 ................... ............................. ................... .................. .................. .................. .............. ..... 8 Ilustración 2: Restaurando Base de Datos "Neptuno” – Parte 01 ....................................................... 8
Ilustración 3: Restaurando Base de Datos "Neptuno" - Parte 02 .................. ........................... ................... ................... .................. ......... 9 Ilustración 4: Restaurando Base de Datos "Neptuno" - Parte 03 .................. ........................... ................... ................... .................. ......... 9 Ilustración 5: Restaurando Base de Datos "Neptuno" - Parte 04 .................. ........................... ................... ................... ................ ....... 10 Ilustración 6: Restaurando Base de Datos - Parte 05 ................. .......................... ................... ................... .................. .................. .................. ......... 10 Ilustración 7: Creación de Nueva Base de Datos "BDRegistro" .................. ........................... .................. .................. .................. ............ ... 11 Ilustración 8: Ejecutando Consulta .................................................................................................... 11 Ilustración 9: Creando Nueva Consulta en "BDRegistro" .......... ................... .................. .................. .................. .................. ................... ............ 12 Ilustración 10 Ejecutando Consulta para Crear Cre ar Tabla "Pais_Eliminado" "Pais_Eliminado" .................. ........................... .................. ............... ...... 12 Ilustración 11: Usando base de datos "NEPTUNO" ................. .......................... ................... ................... .................. .................. .................. ............ ... 13 Ilustración 12: Creando Trigger "TR_CATEGORIA_ELIMINADA" .............. ....................... ................... ................... .................. ............. .... 13 Ilustración 13: TRIGGER TR_CATEGORIA_ELIMINADA .................. ............................ ................... .................. .................. .................. ............... ...... 14 14 Ilustración 14: Corroborando Trigger creado en Tabla País.................. ........................... .................. .................. .................. ................. ........ 15 Ilustración 15: Eliminando Registro en Tabla Pais - "NEPTUNO" .................. ........................... ................... ................... ................ ....... 15 Ilustración 16: Verificando datos guardado en la tabla t abla Pais_Eliminado ................. .......................... ................... ................. ....... 16
UNIVERSIDAD SAN PEDRO
MANUAL DE TRIGGER EN SQL SERVER
1. TRIGGER 1.1 CONCEPTO:
Es un procedimiento que se ejecuta cuando se cumple una condición establecida al realizar una operación. Dependiendo de la base de datos, los triggers pueden ser de inserción (INSERT), actualización (UPDATE) o borrado (DELETE).Algunas bases de datos pueden ejecutar triggers al crear, borrar o editar usuarios, tablas, bases de datos u otros objetos. 1.2 USO:
Los disparadores pueden emplearse para muchas cosas diferentes, incluyendo:
El mantenimiento de restricciones de integridad complejas, que no sean posibles con las restricciones declarativas definidas en el momento de crear la tabla.
La auditoría de la información contenida en una tabla, registrando los cambios realizados y la identidad del que los llevó a cabo.
El aviso automático a otros programas de que hay que llevar a cabo una determinada acción, cuando se realiza un cambio en una tabla
1.3 UN TRIGGER TIENE ASOCIADO:
EL EVENTO: se refiere a la operación que se efectúa sobre la tabla (INSERT, DELETE o UPDATE).
EL MOMENTO: Se refiere a cuándo se dispara el trigger en relación con el evento. Sus posibles valores son BEFORE y AFTER*.
EL TIPO: Indica el número de veces que el cuerpo del trigger se ejecuta: por la operación en conjunto (trigger de operación) o por cada fila procesada (trigger de fila). En este último caso se debe adicionar la cláusula FOR EACH ROW
4
UNIVERSIDAD SAN PEDRO
MANUAL DE TRIGGER EN SQL SERVER
1.4 Limitaciones de los triggers triggers
Solo se pueden aplicar a una tabla específica, es decir, un trigger no sirve para dos o más tablas.
El trigger se crea en la base de datos que de trabajo pero desde un trigger puedes hacer referencia a otras bases de datos.
Un Trigger devuelve resultados al programa que lo desencadena de la misma forma que un Stored Procedure aunque no es lo más idóneo, para impedir que una instrucción de asignación devuelva un resultado se puede utilizar la sentencia SET NOCOUNT al principio del Trigger.
1.5 APLICACIONES TIPICAS DE TRIGGERS
Hacer modificaciones en cascada sobre tablas relacionadas.
Deshacer cambios que violan la integridad de los datos.
Forzar restricciones que son muy complejas para reglas y restricciones.
Mantener datos duplicados.
Mantener columnas con datos derivados.
Hacer ajustes de registros.
1.6 SINTAXIS ESENCIAL DE UN TRIGGER CREATE TRIGGER trigger_name ON { table | view } [ WITH [ ,...n ] ] { FOR | AFTER | INSTEAD OF } { [ INSERT ] [ , ] [ UPDATE ] [ , ] [ DELETE ] } AS { sql_statement [ ; ] [ ,...n ] Trigger_name es el nombre dado al trigger. Es un objeto de la base de datos y su nombre
debe ser único. AFTER indica que el desencadenador sólo se activa cuando todas las operaciones
especificadas en la instrucción SQL desencadenadora se han ejec utado correctamente. Además, todas las acciones referenciales en cascada y las comprobaciones de restricciones deben ser correctas para que este desencadenador se ejecute. AFTER es el valor predeterminado cuando sólo se especifica la palabra clave FOR.
5
UNIVERSIDAD SAN PEDRO
MANUAL DE TRIGGER EN SQL SERVER
Los desencadenadores AFTER no se pueden definir en las vistas. INSTEAD OF
Especifica que se ejecuta el desencadenador en vez de la instrucción SQL desencadenadora,
por lo que que se suplantan las acciones de de las instrucciones
desencadenadoras. Como máximo, se puede definir un desencadenador INSTEAD OF por cada instrucción INSERT, UPDATE o DELETE en cada tabla o vista. No obstante, en las vistas es posible
definir otras vistas que tengan su propio desencadenador INSTEAD OF. Los desencadenadores INSTEAD OF no se pueden utilizar en vistas actualizables que usan WITH CHECK OPTION. { [ DELETE ] [ , ] [ INSERT ] [ , ] [ UPDATE ] }
Especifica las instrucciones de modificación de datos que activan el desencadenador cuando se intenta en esta tabla o vista. Se debe especificar al menos una opción. En la definición del desencadenador se permite cualquier combinación de estas opciones, en cualquier orden. Para los desencadenadores INSTEAD OF, no se permite la opción DELETE en tablas que tengan una relación de integridad referencial que especifica una acción ON DELETE en cascada. Igualmente, no se permite la opción UPDATE en tablas que tengan una relación de integridad referencial que especifica una acción ON UPDATE en cascada. 2. MICROSOFT SQL SERVER 2.1 Qué es Microsoft SQL Server Microsoft SQL Server es un sistema para la gestión de bases de datos producido
por Microsoft basado en el modelo relacional cuya principal función es la de almacenar y consultar datos solicitados por otras aplicaciones, sin importar si están en la misma computadora, si están conectadas a una red local o si están conectadas a través de internet (plataforma “Cloud-Ready”). 2.2 A quién le sirve Microsoft SQL Server
Básicamente, cualquier usuario que desee mantener ordenados/organizados datos o información con el fin de acceder a ellos más adelante
Industrias Bancos Compañías manufactureras Empresas Instituciones
6
UNIVERSIDAD SAN PEDRO
MANUAL DE TRIGGER EN SQL SERVER
2.3 Tipos de Licencia
Enterprise Business intelligence Standard Web Express con advanced services Express con herramientas Express
2.4 Por qué elegir Microsoft SQL Server
Seguridad Integridad de Datos Concurrencia
7
UNIVERSIDAD SAN PEDRO
MANUAL DE TRIGGER EN SQL SERVER
1. Restaurar Backup “NEPTUNO” Abrimos el Programa SQL Server 2012
Conectar
Ilustración 1: Conexión de Servidor a SQL Server 2012
Restaurar Backup Neptuno
Ilustración 2: Restaurando Base de Datos "Neptuno” – Parte 01
8
UNIVERSIDAD SAN PEDRO
MANUAL DE TRIGGER EN SQL SERVER
Dispositivo
Ilustración 3: Restaurando Base de Datos "Neptuno" - Parte 02
Agregar
Aceptar
Ilustración 4: Restaurando Base de Datos "Neptuno" - Parte 03
9
UNIVERSIDAD SAN PEDRO
MANUAL DE TRIGGER EN SQL SERVER
Buscar Archivo a Restaurar
Aceptar
Ilustración 5: Restaurando Base de Datos "Neptuno" - Parte 04
Aceptar
Ilustración 6: Restaurando Base de Datos - Parte 05
10
UNIVERSIDAD SAN PEDRO
MANUAL DE TRIGGER EN SQL SERVER
2. Creación de Base de Datos “BDRegistro”
Nueva Consulta / Master
Ilustración 7: Creación de Nueva Base de Datos "BDRegistro"
Crear la Base de datos “BDRegistro”
Ejecutar
Ilustración 8: Ejecutando Consulta
11
UNIVERSIDAD SAN PEDRO
MANUAL DE TRIGGER EN SQL SERVER
3. Crear la tabla “Pais_Eliminado” en la base de datos BDRegistro con los mismos campos de la tabla tabla de la cual vamos a almacenar almacenar los registros registros eliminados.
BDRegistro
Nueva Consulta
Ilustración 9: Creando Nueva Consulta en "BDRegistro"
Ejecutar Consulta
Ilustración 10 Ejecutando Consulta para Crear Tabla "Pais_Eliminado"
12
UNIVERSIDAD SAN PEDRO
MANUAL DE TRIGGER EN SQL SERVER
4. Usar la base de datos “NEPTUNO” – Crear TRIGGER
Usar base de datos “NEPTUNO”
Ilustración 11: Usando base de datos "NEPTUNO"
Crear Trigger “TR_CATEGORIA_ELIMIN “TR_CATEGORIA_ELIMINADA” ADA”
Ilustración 12: Creando Trigger "TR_CATEGORIA_ELIMINADA"
13
UNIVERSIDAD SAN PEDRO
MANUAL DE TRIGGER EN SQL SERVER
GO --se crea el trigger con el nombre TR_CATEGORIA_ELIMINADA
CREATE TRIGGER TR_CATEGORIA_ELIMINADA --la tabla que afecta
ON dbo.Pais --la operación q realiza el trigger After (ocurre después de que pasa la elimi nación)
AFTER DELETE AS BEGIN --las sentencias sql que ejecuta el trigger
INSERT INTO BDRegistrar.dbo.Pais_Elimin BDRegistrar.dbo.Pais_Eliminado ado SELECT * FROM DELETED d END GO Ilustración 13: TRIGGER TR_CATEGORIA_ELIMINADA
14
UNIVERSIDAD SAN PEDRO
MANUAL DE TRIGGER EN SQL SERVER
Ilustración 14: Corroborando Trigger creado en Tabla País
5. Eliminar un registro de la tabla País en la base de datos “NEPTUNO”. Se ejecutará el Trigger y el Registro eliminado se almacenará en la tabla Pais_Eliminado de la base de datos BDRegistro
Ilustración 15: Eliminando Registro Registro en Tabla Pais - "NEPTUNO"
15
UNIVERSIDAD SAN PEDRO
MANUAL DE TRIGGER EN SQL SERVER
6. Verificar si se guardaron los datos en nuestra nueva tabla – BDRegistro
Ilustración 16: Verificando datos guardado en la tabla Pais_Elim inado
16
UNIVERSIDAD SAN PEDRO
MANUAL DE TRIGGER EN SQL SERVER
http://es.slideshare.net/dinastiajosedejesus/triggers-o-disparadores?related=1 http://www-oei.eui.upm.es/Asignaturas/BD/BD/docbd/prac/sintaxisSQLServer.pdf http://www.snip.gob.ni/xdc/SQL/Desencadenadores.pdf http://static.schoolrack.com/files/14960/103289/Tutorial_de_SQL_Server_2005_Express.pdf
17
UNIVERSIDAD SAN PEDRO
MANUAL DE TRIGGER EN SQL SERVER
https://mega.co.nz/#!kQkk2LhL!sL9x3UNfMjoxOvH78HDZNDiIkZzW88a0c1rTs8ZiGU4
18