SlideShare una empresa de Scribd logo
DISPARADORES Y  PROCEDIMIENTOS
DISPARADORES  También conocidos como  TRIGGERS  , es un bloque  de código almacenado en base de datos que se activa cuando se pulsa una determinada tecla u ocurre un determinado evento automáticamente, un disparador esta asociado a una tabla  como puede ser:  - Realizar una consulta. - Validar un dato. - Hacer una operación DML  inserta, modificar   o eliminar registros de una base de datos.
DISPARADORES En definitiva los DISPARADORES (TIGGERS) son eventos a nivel de tabla que se ejecutan automáticamente cuando se realizan ciertas operaciones sobre la tabla. Existen varios tipos de disparadores, dependiendo del tipo de transacción de disparo y el nivel en el que se ejecuta el disparador (trigger):
DISPARADORES 1.-  Disparadores de nivel de fila : se ejecutan una vez para cada fila afectada por una instrucción DML. Los disparadores de nivel de fila se crean utilizando la cláusula  for each row  en el comando  create trigger . 2.-  Disparadores de nivel de instrucción : se ejecutan una vez para cada instrucción DML. Por ejemplo, si una única instrucción INSERT inserta 500 filas en una tabla un disparador de nivel de instrucción para dicha tabla sólo se ejecutará una vez. Los disparadores de nivel de instrucción son el tipo predeterminado que se crea con el comando  create trigger .
DISPARADORES 3.-  Disparadores Before y After : puesto que los disparadores son ejecutados por sucesos, puede establecerse que se produzcan inmediatamente antes (before) o después (after) de dichos sucesos. 4.-  Disparadores Instead Of : puede utilizar INSTEAD OF para indicar a Oracle lo que tiene que hacer en lugar de realizar las acciones que invoca el disparador. Por ejemplo, podría usar un disparador INSTEAD OF en una vista para gestionar las inserciones en una tabla o para actualizar múltiples tablas que son parte de una vista.
DISPARADORES 5.-  Disparadores de esquema : puede crear disparadores sobre operaciones en el nivel de esquema tales como create table, alter table, drop table, audit, rename, truncate y revoke. Puede incluso crear disparadores para impedir que los usuarios eliminen sus propias tablas. En su mayor parte, los disparadores de nivel de esquema proporcionan dos capacidades: impedir operaciones DDL y proporcionar una seguridad adicional que controle las operaciones DDL cuando éstas se producen. 6.-  Disparadores en nivel de base de datos : puede crear disparadores que se activen al producirse sucesos de la base de datos, incluyendo errores, inicios de sesión, conexiones y desconexiones. Puede utilizar este tipo de disparador para automatizar el mantenimiento de la base de datos o las acciones de auditoría.
1.-  Nombre del trigger. ( create [or replace] trigger  <nombre del trigger>) 2.-  Punto de tiempo del trigger ( before   | after ) 3.-  Disparando eventos ( insert or update [of  <columnas> ]  or delete  <tabla>) 4.-  Tipo de disparador (opcional) ( for each row ) 5.-  Restricción del disparador (Solo para   for each row  disparador) ( when < Condición > ) 6.-  Cuerpo del disparador Estructura de Disparadores   Una definición del disparador consiste en los siguiente componentes:
PROCEDIMIENTOS ALMACENADOS Un procedimiento es un conjunto de sentencias de SQL y que se guarda en la base de datos Con los procedimientos se amplia la velocidad de ejecución de las consultas sin reducir la eficiencia en la respuesta del servidor de base de datos. Esto porque el procedimiento es compilado en memoria virtual del cliente En los procedimientos se pueden crear tablas temporales que solamente existirán durante la ejecución del mismo Los valores resultantes de la ejecución del procedimiento serán obtenidos de la última consulta especificada, siempre y cuando no se envíen a una tabla temporal Se define una tabla temporal al anteponer el símbolo “ # ”   a su nombre
Crear un Procedimiento Crea un procedimiento almacenado, que es una colección guardada de instrucciones Transact-SQL que puede tomar y devolver los parámetros proporcionados por el usuario. Los procedimientos se pueden crear para uso permanente o para uso temporal en una sesión (procedimiento local temporal) o para su uso temporal en todas las sesiones (procedimiento temporal global). Sintaxis CREATE PROCEDURE  procedure_name  [  ;  number  ]      [ { @ parameter data_type  }           ] go
Argumentos procedure_name Es el nombre del nuevo procedimiento almacenado. Los nombres de procedimiento deben seguir las reglas de los identificadores y deben ser únicos en la base de datos y para su propietario. Los procedimientos temporales locales o globales se pueden crear precediendo el  procedure_name  con un signo numérico simple (# procedure_name ) para los procedimientos temporales locales y un signo numérico doble (## procedure_name ) para los procedimientos temporales globales. El nombre completo, incluidos los signos # o ##, no puede exceder de 128 caracteres. Especificar el nombre del propietario del procedimiento es opcional.
; number Es un entero opcional utilizado para agrupar procedimientos del mismo nombre de forma que se puedan quitar juntos con una única instrucción DROP PROCEDURE. Por ejemplo, los procedimientos utilizados con una aplicación llamada &quot;orders&quot; se pueden llamar  orderproc ;1,  orderproc ;2, etc. La instrucción DROP PROCEDURE  orderproc  quita el grupo completo. Si el nombre contiene identificadores delimitados, el número no debe incluirse como parte del identificador; utilice el delimitador adecuado sólo alrededor de  procedure_name .
@ parameter Es un parámetro del procedimiento. En una instrucción CREATE PROCEDURE se pueden declarar uno o más parámetros. El usuario debe proporcionar el valor de cada parámetro declarado cuando se ejecuta el procedimiento, a menos que se haya definido un valor predeterminado para el parámetro. Un procedimiento almacenado puede tener un máximo de 2.100 parámetros. Especifique un nombre de parámetro con un signo (@) como el primer carácter. Los nombres de los parámetros deben cumplir las reglas de los identificadores. Los parámetros son locales para el procedimiento; los mismos nombres de parámetro se pueden utilizar en otros procedimientos. De forma predeterminada, los parámetros sólo pueden ocupar el lugar de constantes; no se pueden utilizar en lugar de nombres de tablas, nombres de columnas o nombres de otros objetos de base de datos.
data_type Es el tipo de datos del parámetro. Todos los tipos de datos, incluidos  text ,  ntext  e  image , se pueden utilizar como parámetros de un procedimiento almacenado.
Eliminar y Ejecutar un Procedimiento Sintaxis para eliminar drop procedure  nombre del procedimiento Sintaxis para ejecutar nombre del procedimiento parámetro 1, parámetro 2, parámetro n Ejecutar el procedimiento nombre del procedimiento

Más contenido relacionado

PDF
Triggers o disparadores en MySQL
PDF
Commit&rollback
PDF
Programación MySQL-Ejercicios
PPTX
Triggers o disparadores
PPTX
Disparadores Trigger En Sql Y My Sql
PDF
51191625 triggers
Triggers o disparadores en MySQL
Commit&rollback
Programación MySQL-Ejercicios
Triggers o disparadores
Disparadores Trigger En Sql Y My Sql
51191625 triggers

La actualidad más candente (20)

DOCX
Sesión12 - Trigger (Oracle)
DOC
Procedimientos Almacenados
PPTX
TRANSACCIONES, TRIGGERS, PROCEDIMIENTOS ALMACENADOS: DB2/IBM
PDF
Triggers en BD mysql
PPS
Triggers
PPTX
Disparadores
PPT
DOCX
TRIGGERS Cliente - servidor
DOCX
Postgres trigger
PPTX
MANEJO DE SENTENCIAS DE DEFINICION
PPT
7090112 Clase Transact Sql Server
DOCX
Sesion05 - Manipulacion de datos (Oracle)
PPTX
Otros Objetos de Esquemas Z051 Cap 12
DOCX
Sesion06c - Sentencias SQL en PL-SQL (Oracle)
DOCX
Sesión02 - Creación de objetos (Oracle)
DOCX
Sesion07- Estructuras de control (Oracle)
DOCX
Sesion09 - Manejo de Excepciones (Oracle)
PPSX
Qué es SQL
PPT
Funciones store proc_triggers
PDF
Tutorial disparadores
Sesión12 - Trigger (Oracle)
Procedimientos Almacenados
TRANSACCIONES, TRIGGERS, PROCEDIMIENTOS ALMACENADOS: DB2/IBM
Triggers en BD mysql
Triggers
Disparadores
TRIGGERS Cliente - servidor
Postgres trigger
MANEJO DE SENTENCIAS DE DEFINICION
7090112 Clase Transact Sql Server
Sesion05 - Manipulacion de datos (Oracle)
Otros Objetos de Esquemas Z051 Cap 12
Sesion06c - Sentencias SQL en PL-SQL (Oracle)
Sesión02 - Creación de objetos (Oracle)
Sesion07- Estructuras de control (Oracle)
Sesion09 - Manejo de Excepciones (Oracle)
Qué es SQL
Funciones store proc_triggers
Tutorial disparadores
Publicidad

Similar a Disparadores (20)

PPT
Disparadores 1213820550525607-9
DOCX
PROCEDIMIENTOS ALMACNEADOS Y DISPARADORES - Informe de los videos
PDF
Teoria procedimientos almacenados
PPT
TRIGGERS
PPT
Bd L8 Eq9 Pre Rosa Triggers
PDF
Transacciones y sql procedural EN MySQL
PDF
Funciones store proc_triggers
PPTX
Taller de Base de Datos - Unidad 6 SQL procedural
PPTX
Disparadores
PPTX
Disparadores
PPTX
Trigger Data Base
PPTX
TRIGGERS O DISPARADORES
DOCX
Trabajo grupal - Base de Datos
PPTX
Lenguaje transact sql
PDF
database trig
PDF
Procedimientos almacenados en MySQL
ODP
Intro to DTrace
PPTX
Disparadores.pptx
Disparadores 1213820550525607-9
PROCEDIMIENTOS ALMACNEADOS Y DISPARADORES - Informe de los videos
Teoria procedimientos almacenados
TRIGGERS
Bd L8 Eq9 Pre Rosa Triggers
Transacciones y sql procedural EN MySQL
Funciones store proc_triggers
Taller de Base de Datos - Unidad 6 SQL procedural
Disparadores
Disparadores
Trigger Data Base
TRIGGERS O DISPARADORES
Trabajo grupal - Base de Datos
Lenguaje transact sql
database trig
Procedimientos almacenados en MySQL
Intro to DTrace
Disparadores.pptx
Publicidad

Disparadores

  • 1. DISPARADORES Y PROCEDIMIENTOS
  • 2. DISPARADORES También conocidos como TRIGGERS , es un bloque de código almacenado en base de datos que se activa cuando se pulsa una determinada tecla u ocurre un determinado evento automáticamente, un disparador esta asociado a una tabla como puede ser: - Realizar una consulta. - Validar un dato. - Hacer una operación DML inserta, modificar o eliminar registros de una base de datos.
  • 3. DISPARADORES En definitiva los DISPARADORES (TIGGERS) son eventos a nivel de tabla que se ejecutan automáticamente cuando se realizan ciertas operaciones sobre la tabla. Existen varios tipos de disparadores, dependiendo del tipo de transacción de disparo y el nivel en el que se ejecuta el disparador (trigger):
  • 4. DISPARADORES 1.- Disparadores de nivel de fila : se ejecutan una vez para cada fila afectada por una instrucción DML. Los disparadores de nivel de fila se crean utilizando la cláusula for each row en el comando create trigger . 2.- Disparadores de nivel de instrucción : se ejecutan una vez para cada instrucción DML. Por ejemplo, si una única instrucción INSERT inserta 500 filas en una tabla un disparador de nivel de instrucción para dicha tabla sólo se ejecutará una vez. Los disparadores de nivel de instrucción son el tipo predeterminado que se crea con el comando create trigger .
  • 5. DISPARADORES 3.- Disparadores Before y After : puesto que los disparadores son ejecutados por sucesos, puede establecerse que se produzcan inmediatamente antes (before) o después (after) de dichos sucesos. 4.- Disparadores Instead Of : puede utilizar INSTEAD OF para indicar a Oracle lo que tiene que hacer en lugar de realizar las acciones que invoca el disparador. Por ejemplo, podría usar un disparador INSTEAD OF en una vista para gestionar las inserciones en una tabla o para actualizar múltiples tablas que son parte de una vista.
  • 6. DISPARADORES 5.- Disparadores de esquema : puede crear disparadores sobre operaciones en el nivel de esquema tales como create table, alter table, drop table, audit, rename, truncate y revoke. Puede incluso crear disparadores para impedir que los usuarios eliminen sus propias tablas. En su mayor parte, los disparadores de nivel de esquema proporcionan dos capacidades: impedir operaciones DDL y proporcionar una seguridad adicional que controle las operaciones DDL cuando éstas se producen. 6.- Disparadores en nivel de base de datos : puede crear disparadores que se activen al producirse sucesos de la base de datos, incluyendo errores, inicios de sesión, conexiones y desconexiones. Puede utilizar este tipo de disparador para automatizar el mantenimiento de la base de datos o las acciones de auditoría.
  • 7. 1.- Nombre del trigger. ( create [or replace] trigger <nombre del trigger>) 2.- Punto de tiempo del trigger ( before | after ) 3.- Disparando eventos ( insert or update [of <columnas> ] or delete <tabla>) 4.- Tipo de disparador (opcional) ( for each row ) 5.- Restricción del disparador (Solo para for each row disparador) ( when < Condición > ) 6.- Cuerpo del disparador Estructura de Disparadores Una definición del disparador consiste en los siguiente componentes:
  • 8. PROCEDIMIENTOS ALMACENADOS Un procedimiento es un conjunto de sentencias de SQL y que se guarda en la base de datos Con los procedimientos se amplia la velocidad de ejecución de las consultas sin reducir la eficiencia en la respuesta del servidor de base de datos. Esto porque el procedimiento es compilado en memoria virtual del cliente En los procedimientos se pueden crear tablas temporales que solamente existirán durante la ejecución del mismo Los valores resultantes de la ejecución del procedimiento serán obtenidos de la última consulta especificada, siempre y cuando no se envíen a una tabla temporal Se define una tabla temporal al anteponer el símbolo “ # ” a su nombre
  • 9. Crear un Procedimiento Crea un procedimiento almacenado, que es una colección guardada de instrucciones Transact-SQL que puede tomar y devolver los parámetros proporcionados por el usuario. Los procedimientos se pueden crear para uso permanente o para uso temporal en una sesión (procedimiento local temporal) o para su uso temporal en todas las sesiones (procedimiento temporal global). Sintaxis CREATE PROCEDURE procedure_name [ ; number ]     [ { @ parameter data_type }         ] go
  • 10. Argumentos procedure_name Es el nombre del nuevo procedimiento almacenado. Los nombres de procedimiento deben seguir las reglas de los identificadores y deben ser únicos en la base de datos y para su propietario. Los procedimientos temporales locales o globales se pueden crear precediendo el procedure_name con un signo numérico simple (# procedure_name ) para los procedimientos temporales locales y un signo numérico doble (## procedure_name ) para los procedimientos temporales globales. El nombre completo, incluidos los signos # o ##, no puede exceder de 128 caracteres. Especificar el nombre del propietario del procedimiento es opcional.
  • 11. ; number Es un entero opcional utilizado para agrupar procedimientos del mismo nombre de forma que se puedan quitar juntos con una única instrucción DROP PROCEDURE. Por ejemplo, los procedimientos utilizados con una aplicación llamada &quot;orders&quot; se pueden llamar orderproc ;1, orderproc ;2, etc. La instrucción DROP PROCEDURE orderproc quita el grupo completo. Si el nombre contiene identificadores delimitados, el número no debe incluirse como parte del identificador; utilice el delimitador adecuado sólo alrededor de procedure_name .
  • 12. @ parameter Es un parámetro del procedimiento. En una instrucción CREATE PROCEDURE se pueden declarar uno o más parámetros. El usuario debe proporcionar el valor de cada parámetro declarado cuando se ejecuta el procedimiento, a menos que se haya definido un valor predeterminado para el parámetro. Un procedimiento almacenado puede tener un máximo de 2.100 parámetros. Especifique un nombre de parámetro con un signo (@) como el primer carácter. Los nombres de los parámetros deben cumplir las reglas de los identificadores. Los parámetros son locales para el procedimiento; los mismos nombres de parámetro se pueden utilizar en otros procedimientos. De forma predeterminada, los parámetros sólo pueden ocupar el lugar de constantes; no se pueden utilizar en lugar de nombres de tablas, nombres de columnas o nombres de otros objetos de base de datos.
  • 13. data_type Es el tipo de datos del parámetro. Todos los tipos de datos, incluidos text , ntext e image , se pueden utilizar como parámetros de un procedimiento almacenado.
  • 14. Eliminar y Ejecutar un Procedimiento Sintaxis para eliminar drop procedure nombre del procedimiento Sintaxis para ejecutar nombre del procedimiento parámetro 1, parámetro 2, parámetro n Ejecutar el procedimiento nombre del procedimiento