SlideShare una empresa de Scribd logo
1 de 10
Docente :Ing. Marco Aurelio Porro Chulli.
Asignatura :Base de Datos II.
Ciclo : VIII “A”
Integrante:
• Yenny Isabel Cuello Morón.
• Yanina Bustamante Jibaja.
INGENIERÍA DE SISTEMAS Y TELEMÁTICA
ACTIVADORES EN
SQL SERVER
DEFINICION
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 modifica los datos
de una tabla.
 Declarar variables locales
 Invocar procedimientos almacenados
Los triggers pueden:
 Llamarse directamente
 Usar parámetros
 Definirse sobre tablas temporales o vistas
 Crear objetos permanentes de base de datos
Los triggers no pueden:
SINTAXIS
CREATE [ OR ALTER ] TRIGGER [ schema_name . ]trigger_name
ON { table | view }
[ WITH <dml_trigger_option> [ ,...n ] ]
{ FOR | AFTER | INSTEAD OF }
{ [ INSERT ] [ , ] [ UPDATE ] [ , ] [ DELETE ] }
[ WITH APPEND ]
[ NOT FOR REPLICATION ]
AS { sql_statement [ ; ] [ ,...n ] | EXTERNAL NAME <method specifier [ ; ] > }
<dml_trigger_option> ::=
[ ENCRYPTION ]
[ EXECUTE AS Clause ]
<method_specifier> ::=
assembly_name.class_name.method_name
Administración de Activadores (Creación, Modificación y Eliminación)
CREACIÓN
sintaxis
CREATE TRIGGER [ schema_name . ]trigger_name
ON { table | view }
[ WITH <dml_trigger_option> [ ,...n ] ]
{ FOR | AFTER | INSTEAD OF }
{ [ INSERT ] [ , ] [ UPDATE ] [ , ] [ DELETE ] }
[ WITH APPEND ]
[ NOT FOR REPLICATION ]
AS { sql_statement [ ; ] [ ,...n ] | EXTERNAL NAME
<method specifier [ ; ] > }
EJEMPLO
CREATE TABLE EJ_TRIGGER (
A INT PRIMARY KEY,
B CHAR (30))
CREATE TRIGGER TR_I_EJ_TRIGGER ON EJ_TRIGGER FOR INSERT AS
IF datename(month, getdate()) = "October"
BEGIN
SELECT "En Octubre no hay inserciones"
ROLLBACK TRIGGER
END
INSERT INTO EJ_TRIGGER VALUES (2, 'Dos')
SELECT * FROM EJ_TRIGGER
MODIFICACIÓN
Sintaxis
CREATE TRIGGER emp_stamp BEFORE INSERT OR UPDATE ON emp
FOR EACH ROW EXECUTE PROCEDURE emp_stamp();
ELIMINACIÓN
Sintaxis
drop trigger nombre_del_trigger
EJEMPLOS
1.-Crear dos tablas
CREATE TABLE EJ_TRIGGER_2A (
A INT PRIMARY KEY,
B CHAR (30))
CREATE TABLE EJ_TRIGGER_2B (
ID NUMERIC IDENTITY PRIMARY KEY,
FECHA DATETIME,
FILAS INT)
2-Crear un trigger que guarde la fecha y número de filas
afectadas por cada delete:
CREATE TRIGGER TR_D_EJ_TRIGGER_2 ON
EJ_TRIGGER_2A FOR DELETE AS
INSERT INTO EJ_TRIGGER_2B VALUES (getdate(),
@@rowcount)
RETURN
Conclusiones
•Puedes invertir la lógica. En lugar de eliminar una fila no válida después de que se haya
insertado, escriba un activador, por ejemplo: INSTEAD OF para insertar solo si verifica que
la fila sea válida.
•Los activadores también pueden utilizarse para provocar actualizaciones en otras tablas,
para transformar o generar valores automáticamente en las filas insertadas o actualizadas,
o para invocar funciones que realicen tareas como la de emitir alertas.

Más contenido relacionado

La actualidad más candente

Otros Objetos de Esquemas Z051 Cap 12
Otros Objetos de Esquemas Z051 Cap 12Otros Objetos de Esquemas Z051 Cap 12
Otros Objetos de Esquemas Z051 Cap 12Alexander Calderón
 
Sesion08 - Cursores (Oracle)
Sesion08 - Cursores (Oracle)Sesion08 - Cursores (Oracle)
Sesion08 - Cursores (Oracle)José Toro
 
Manejo de triggers en sql server
Manejo de triggers en sql server Manejo de triggers en sql server
Manejo de triggers en sql server Dheeyi William
 
Sesion05 - Manipulacion de datos (Oracle)
Sesion05 - Manipulacion de datos (Oracle)Sesion05 - Manipulacion de datos (Oracle)
Sesion05 - Manipulacion de datos (Oracle)José Toro
 
HTML5 API WebSQL Database: DML: Data Manipulation Language
HTML5 API WebSQL Database: DML: Data Manipulation LanguageHTML5 API WebSQL Database: DML: Data Manipulation Language
HTML5 API WebSQL Database: DML: Data Manipulation LanguageFrancisco Javier Arce Anguiano
 
MANEJO DE SENTENCIAS DE DEFINICION
MANEJO DE SENTENCIAS DE DEFINICIONMANEJO DE SENTENCIAS DE DEFINICION
MANEJO DE SENTENCIAS DE DEFINICIONSergio Perez
 
Funciones y procedimientos en SQL
Funciones y procedimientos en SQLFunciones y procedimientos en SQL
Funciones y procedimientos en SQLRonald Rivas
 
Base de Datos(Funciones, Vistas,Procedimientos Almacenados,Triggers)
Base de Datos(Funciones, Vistas,Procedimientos Almacenados,Triggers)Base de Datos(Funciones, Vistas,Procedimientos Almacenados,Triggers)
Base de Datos(Funciones, Vistas,Procedimientos Almacenados,Triggers)Universidad Nacional de Piura
 
Objetos de Esquema de Oracle Database Z052-09
Objetos de Esquema de Oracle Database Z052-09Objetos de Esquema de Oracle Database Z052-09
Objetos de Esquema de Oracle Database Z052-09Alexander Calderón
 
Javier Fernández López, Funciones de Dispersión
Javier Fernández López, Funciones de DispersiónJavier Fernández López, Funciones de Dispersión
Javier Fernández López, Funciones de Dispersiónjafelo
 

La actualidad más candente (20)

Comando ddl
Comando ddlComando ddl
Comando ddl
 
Vistas
VistasVistas
Vistas
 
Sentencias create
Sentencias createSentencias create
Sentencias create
 
Otros Objetos de Esquemas Z051 Cap 12
Otros Objetos de Esquemas Z051 Cap 12Otros Objetos de Esquemas Z051 Cap 12
Otros Objetos de Esquemas Z051 Cap 12
 
Funciones sql
Funciones sqlFunciones sql
Funciones sql
 
Sesion08 - Cursores (Oracle)
Sesion08 - Cursores (Oracle)Sesion08 - Cursores (Oracle)
Sesion08 - Cursores (Oracle)
 
Manejo de triggers en sql server
Manejo de triggers en sql server Manejo de triggers en sql server
Manejo de triggers en sql server
 
Sesion05 - Manipulacion de datos (Oracle)
Sesion05 - Manipulacion de datos (Oracle)Sesion05 - Manipulacion de datos (Oracle)
Sesion05 - Manipulacion de datos (Oracle)
 
HTML5 API WebSQL Database: DML: Data Manipulation Language
HTML5 API WebSQL Database: DML: Data Manipulation LanguageHTML5 API WebSQL Database: DML: Data Manipulation Language
HTML5 API WebSQL Database: DML: Data Manipulation Language
 
Statement
StatementStatement
Statement
 
MANEJO DE SENTENCIAS DE DEFINICION
MANEJO DE SENTENCIAS DE DEFINICIONMANEJO DE SENTENCIAS DE DEFINICION
MANEJO DE SENTENCIAS DE DEFINICION
 
Funciones y procedimientos en SQL
Funciones y procedimientos en SQLFunciones y procedimientos en SQL
Funciones y procedimientos en SQL
 
Curso SQL - Leccion 6
Curso SQL - Leccion 6Curso SQL - Leccion 6
Curso SQL - Leccion 6
 
Tutorial Sql
Tutorial SqlTutorial Sql
Tutorial Sql
 
Base de Datos(Funciones, Vistas,Procedimientos Almacenados,Triggers)
Base de Datos(Funciones, Vistas,Procedimientos Almacenados,Triggers)Base de Datos(Funciones, Vistas,Procedimientos Almacenados,Triggers)
Base de Datos(Funciones, Vistas,Procedimientos Almacenados,Triggers)
 
Fundamentos de SELECT SQL
Fundamentos de SELECT SQLFundamentos de SELECT SQL
Fundamentos de SELECT SQL
 
Objetos de Esquema de Oracle Database Z052-09
Objetos de Esquema de Oracle Database Z052-09Objetos de Esquema de Oracle Database Z052-09
Objetos de Esquema de Oracle Database Z052-09
 
Javier Fernández López, Funciones de Dispersión
Javier Fernández López, Funciones de DispersiónJavier Fernández López, Funciones de Dispersión
Javier Fernández López, Funciones de Dispersión
 
Insert
InsertInsert
Insert
 
Introduccion a SQL
Introduccion a SQL Introduccion a SQL
Introduccion a SQL
 

Similar a Activadores (20)

Trigger activadores
Trigger    activadoresTrigger    activadores
Trigger activadores
 
Trigger
TriggerTrigger
Trigger
 
Triggers
TriggersTriggers
Triggers
 
TRIGGERS O DISPARADORES
TRIGGERS O DISPARADORESTRIGGERS O DISPARADORES
TRIGGERS O DISPARADORES
 
Triggr
TriggrTriggr
Triggr
 
TRIGGER-ACTIVADORES
TRIGGER-ACTIVADORESTRIGGER-ACTIVADORES
TRIGGER-ACTIVADORES
 
TRIGGERS-ACTIVADORES
TRIGGERS-ACTIVADORESTRIGGERS-ACTIVADORES
TRIGGERS-ACTIVADORES
 
Tema 1 Parte 5.pdf
Tema 1 Parte 5.pdfTema 1 Parte 5.pdf
Tema 1 Parte 5.pdf
 
Funciones store proc_triggers
Funciones store proc_triggersFunciones store proc_triggers
Funciones store proc_triggers
 
Bd L8 Eq9 Pre Rosa Triggers
Bd L8 Eq9 Pre Rosa TriggersBd L8 Eq9 Pre Rosa Triggers
Bd L8 Eq9 Pre Rosa Triggers
 
TRIGGERS
TRIGGERSTRIGGERS
TRIGGERS
 
Funciones store proc_triggers
Funciones store proc_triggersFunciones store proc_triggers
Funciones store proc_triggers
 
Sql 2010
Sql 2010Sql 2010
Sql 2010
 
Triggers o disparadores
Triggers o disparadoresTriggers o disparadores
Triggers o disparadores
 
Disparadores Trigger En Sql Y My Sql
Disparadores Trigger En Sql Y My SqlDisparadores Trigger En Sql Y My Sql
Disparadores Trigger En Sql Y My Sql
 
Disparadores Trigger En Sql Y My Sql
Disparadores Trigger En Sql Y My SqlDisparadores Trigger En Sql Y My Sql
Disparadores Trigger En Sql Y My Sql
 
Resumen-sens-SQL.pdf
Resumen-sens-SQL.pdfResumen-sens-SQL.pdf
Resumen-sens-SQL.pdf
 
Trigger
TriggerTrigger
Trigger
 
Trigger-activadores en sql server
Trigger-activadores en sql serverTrigger-activadores en sql server
Trigger-activadores en sql server
 
Triggers
TriggersTriggers
Triggers
 

Más de yenny isabel cuello moron (17)

Oltp exposicion grupal
Oltp exposicion grupalOltp exposicion grupal
Oltp exposicion grupal
 
Seguridad
SeguridadSeguridad
Seguridad
 
Transacciones
TransaccionesTransacciones
Transacciones
 
Sistemas de seguridad
Sistemas de seguridadSistemas de seguridad
Sistemas de seguridad
 
Cursores
CursoresCursores
Cursores
 
Procedimientos almacenados
Procedimientos almacenadosProcedimientos almacenados
Procedimientos almacenados
 
Vistas
VistasVistas
Vistas
 
Ddl
DdlDdl
Ddl
 
Transac sql
Transac sqlTransac sql
Transac sql
 
Preparedstatement(grupal)
Preparedstatement(grupal)Preparedstatement(grupal)
Preparedstatement(grupal)
 
Yanina
YaninaYanina
Yanina
 
Resultset
ResultsetResultset
Resultset
 
Statement
StatementStatement
Statement
 
Connection()
Connection()Connection()
Connection()
 
Trabajo de java con base de datos(yanina y yenny)
Trabajo de java con base de datos(yanina y yenny)Trabajo de java con base de datos(yanina y yenny)
Trabajo de java con base de datos(yanina y yenny)
 
Jdbc(desarrollo de software i yanina y yenny)
Jdbc(desarrollo de software i yanina y yenny)Jdbc(desarrollo de software i yanina y yenny)
Jdbc(desarrollo de software i yanina y yenny)
 
Trabajo de desarrollo de software(java)yanina y yenny
Trabajo de desarrollo de software(java)yanina y yennyTrabajo de desarrollo de software(java)yanina y yenny
Trabajo de desarrollo de software(java)yanina y yenny
 

Activadores

  • 1. Docente :Ing. Marco Aurelio Porro Chulli. Asignatura :Base de Datos II. Ciclo : VIII “A” Integrante: • Yenny Isabel Cuello Morón. • Yanina Bustamante Jibaja. INGENIERÍA DE SISTEMAS Y TELEMÁTICA ACTIVADORES EN SQL SERVER
  • 2. DEFINICION 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.
  • 3. Los eventos que hacen que se ejecute un trigger son las operaciones de inserción (INSERT), borrado (DELETE) o actualización (UPDATE), ya que modifica los datos de una tabla.  Declarar variables locales  Invocar procedimientos almacenados Los triggers pueden:  Llamarse directamente  Usar parámetros  Definirse sobre tablas temporales o vistas  Crear objetos permanentes de base de datos Los triggers no pueden:
  • 4. SINTAXIS CREATE [ OR ALTER ] TRIGGER [ schema_name . ]trigger_name ON { table | view } [ WITH <dml_trigger_option> [ ,...n ] ] { FOR | AFTER | INSTEAD OF } { [ INSERT ] [ , ] [ UPDATE ] [ , ] [ DELETE ] } [ WITH APPEND ] [ NOT FOR REPLICATION ] AS { sql_statement [ ; ] [ ,...n ] | EXTERNAL NAME <method specifier [ ; ] > } <dml_trigger_option> ::= [ ENCRYPTION ] [ EXECUTE AS Clause ] <method_specifier> ::= assembly_name.class_name.method_name
  • 5. Administración de Activadores (Creación, Modificación y Eliminación) CREACIÓN sintaxis CREATE TRIGGER [ schema_name . ]trigger_name ON { table | view } [ WITH <dml_trigger_option> [ ,...n ] ] { FOR | AFTER | INSTEAD OF } { [ INSERT ] [ , ] [ UPDATE ] [ , ] [ DELETE ] } [ WITH APPEND ] [ NOT FOR REPLICATION ] AS { sql_statement [ ; ] [ ,...n ] | EXTERNAL NAME <method specifier [ ; ] > }
  • 6. EJEMPLO CREATE TABLE EJ_TRIGGER ( A INT PRIMARY KEY, B CHAR (30)) CREATE TRIGGER TR_I_EJ_TRIGGER ON EJ_TRIGGER FOR INSERT AS IF datename(month, getdate()) = "October" BEGIN SELECT "En Octubre no hay inserciones" ROLLBACK TRIGGER END INSERT INTO EJ_TRIGGER VALUES (2, 'Dos') SELECT * FROM EJ_TRIGGER
  • 7. MODIFICACIÓN Sintaxis CREATE TRIGGER emp_stamp BEFORE INSERT OR UPDATE ON emp FOR EACH ROW EXECUTE PROCEDURE emp_stamp(); ELIMINACIÓN Sintaxis drop trigger nombre_del_trigger
  • 8. EJEMPLOS 1.-Crear dos tablas CREATE TABLE EJ_TRIGGER_2A ( A INT PRIMARY KEY, B CHAR (30)) CREATE TABLE EJ_TRIGGER_2B ( ID NUMERIC IDENTITY PRIMARY KEY, FECHA DATETIME, FILAS INT)
  • 9. 2-Crear un trigger que guarde la fecha y número de filas afectadas por cada delete: CREATE TRIGGER TR_D_EJ_TRIGGER_2 ON EJ_TRIGGER_2A FOR DELETE AS INSERT INTO EJ_TRIGGER_2B VALUES (getdate(), @@rowcount) RETURN
  • 10. Conclusiones •Puedes invertir la lógica. En lugar de eliminar una fila no válida después de que se haya insertado, escriba un activador, por ejemplo: INSTEAD OF para insertar solo si verifica que la fila sea válida. •Los activadores también pueden utilizarse para provocar actualizaciones en otras tablas, para transformar o generar valores automáticamente en las filas insertadas o actualizadas, o para invocar funciones que realicen tareas como la de emitir alertas.