Delete en tablas: titulacion. Puedo eliminar cualquier fila de una tabla? Restriccion de integridad: Restrict/Cascade.

Slides:



Advertisements
Presentaciones similares
CREATE VIEW nombre [ ( columna [,...n ] ) ] AS sentencia_select [ WITH CHECK OPTION ] 1.nombre Es el nombre de la vista. 2.Se debe tener permisos CREATE.
Advertisements

Composición de Una Tabla de Números a Partir de Una Lista de Números Separada por Comas en Transact SQL Leonel Morales Díaz Ingeniería Simple
SQL Sigla del nombre “Structured Query Language”.
Se necesita un PA que muestre la información de todos los clientes registrados de la siguiente forma: Nombre1 Nombre2, Apellido1 Apellido2 bajo el título.
Unidad 3.
Insercion de datos..
MSQL OPERADORES BIT A BIT & a & b Operador de BIT AND. I a l b Operador de BIT OR. < < a >
Ejercicios Solemne 2 Parte 1
Implementación de procedimientos almacenados
Implementación de funciones definidas por el usuario
Trabajo con subconsultas
Implementación de procedimientos almacenados. Introducción a los procedimientos almacenados Creación, ejecución, modificación y eliminación de procedimientos.
SQL Server 2005 ADO.NET Javier Fernández Rodríguez Noviembre 2005, Sevilla Javier Fernández Rodríguez Noviembre 2005, Sevilla.
INTEGRIDAD, INTEGRIDAD REFERENCIAL
Nombre:Nº de Control: María del Carmen Raygoza Hernández Judith Itzel Requejo Hernández
Procedimientos Almacenados y Disparadores
SQL Base de Datos LENGUAJES DE CONSULTA AR y CR no pueden ser tomados como base para implementar porque: Poseen sintaxis compleja No permiten.
PL/SQL Francisco Moreno Universidad Nacional. Funciones Si un procedimiento tiene solo un parámetro de salida, se puede remplazar por una función y esta.
Maestría en Bioinformática Bases de Datos y Sistemas de Información Otros objetos de Base de Datos Ing. Alfonso Vicente, PMP
25/11/07Laboratorio de Bases de Datos1 PL/SQL* *Tomado del curso de Francisco Moreno.
Características Objeto Relacionales en Oracle
Bases de Datos Relacionales Preparó: Ismael Castañeda Fuentes Fuentes:Manuales Sybase Manuales SQL Server Manuales Oracle BATCHS.
BASES DE DATOS Ejercicio No. 6. Ejecutar las siguientes sentencias SELECT nombre, ueldo FROM user.tabla_profesor WHERE filtro 1 UPDATE user.tabla_profesor.
Características Objeto Relacionales en Oracle Francisco Moreno Universidad Nacional.
Sistema de gestión de las bases de datos (SGBD).
UNITA - IBARRA BLOQUES PL-SQL SUBPROGRAMAS Paulina Guevara.
Diseño Físico Procedimientos Almacenados y Disparadores (Triggers)
PL/SQL Francisco Moreno Universidad Nacional.
MySQL M.C. Pedro Bello López.
…Tablas DDL.
SQL Lenguaje de consulta estructurado
Bases de Datos Relacionales
16/04/ Sesión 11 Funciones y procedimientos Ing. Ricardo Inquilla.
PL/SQL Francisco Moreno Universidad Nacional.
Integridad Referencial 1. Integridad referencial 2.
UNITA - IBARRA TRIGGERS
Lenguaje Estructurado de Consultas
tipo de datos uniqueidentifier
John Freddy Duitama M.U.de.A. Facultad de Ingeniería. Creación del esquema de Una Base de Datos. John Freddy Duitama Muñoz. Facultad de Ingeniería. U.de.A.
SQL: DDL Francisco Moreno & Carlos Mario Zapata. SQL:DDL DDL: Lenguaje de Definición de Datos Permite crear objetos en la Base de Datos Tipos de Objetos:
SQL: Lenguaje de Interrogación Estructurado. Vistas Declaración de vista CREATE VIEW ( ) AS SELECT... Semántica Tabla virtual cuyo contenido es el resultado.
Bases de Datos 1 Prof. Daniel Obando Fuentes. USE USE {database}; Cambia el contexto de base de datos Es decir, dice cuál es la base de datos que se utilizará.
Características Objeto-Relacionales en Oracle Francisco Moreno Universidad Nacional.
Structured Query Language (Lenguaje Estructurado de Consultas)
John Freddy Duitama M.U.de.A. Facultad de Ingeniería. Creación del esquema de Una Base de Datos. John Freddy Duitama Muñoz. Facultad de Ingeniería. U.de.A.
Cifrar / Descifrar campos en SQL
SQL Sigla del nombre “Structured Query Language”.
Base de datos Francisco Castro. Creación de una tabla drop table TABLA cascade constraints; /*==============================================================*/
PUESTO-TRABAJO (Código-Puesto, Empresa, Sueldo, DNI- Contratado) TITULADO (DNI-Titulado, Nombre, Apellidos, Dirección) TITULACION (Iden-Titulación, Nombre,
Comandos de SQL Prog. Orientada a Eventos. Inserción de datos (INSERT) INSERT….VALUES INSERT INTO Tabla1 (Columna1, Columna2…) VALUES (‘ValorAlfa’, ValorNum…);
Características Objeto Relacionales en Oracle Francisco Moreno Universidad Nacional.
MSSQL SERVER CURSO BÁSICO 1. DESCRIPCIÓN DEL CURSO. Sesión 4: Sentencia Insert,Transacciones,Insert general, Insert Select * From, Sentencia Update,Update.
SQL Lenguaje Estructurado de Consultas. Structured Query Lenguaje (SQL). Lenguaje de acceso a bases de datos. Proyecto de Investigación de IBM. La mayoria.
UNIVERSIDAD LATINA IV. CONSULTAS AVANZADAS CON BASES DE DATOS. E.I. L.E. Prof. Ramón Castro Liceaga.
AA Gerardo Morgade Donato AA Isnel Leyva Herbella.
Lenguaje Estructurado de Consultas
6 Triggers ORACLE - II Bases de datos II I-2014 Universidad del Cauca Ing. Wilson Ortega Bases de datos II I-2014 Universidad del Cauca Ing. Wilson Ortega.
DML Transact SQL Sesión X Triggers. Duración 2 Horas.
PL/SQL Francisco Moreno Universidad Nacional.
PL/SQL Francisco Moreno Universidad Nacional.
Características Objeto Relacionales en Oracle
MYSQL SQL: Lenguaje de consulta estructurado. Es un lenguaje de programación para trabajar con BD relacionadas, entre las cuales tenemos MYSQL, ORACLE,
Tipos de datos en MYSQL YEAR: Año. “YYYY” o “YY”
BASE DE DATOS IUPSM CLASE PRACTICA. PROF. ING. JOSE L GUZMAN H.
SQL Prof. Martín Contreras.
UN DISPARADOR O TRIGGER es un procedimiento que se ejecuta cuando se cumple una condición establecida al realizar una operación. Es una rutina autónoma.
5. SQL Procedural.
UN EJEMPLO DE LECTURA CONSISTENTE EN INNODB
Modificación de datos. Introducción Uso de transacciones Inserción de datos Eliminación de datos Actualización de datos Consideraciones acerca del rendimiento.
TRIGGERS VISTAS Y PROCESOS Ing. Fabiola Nilda Perez Oliver
Transcripción de la presentación:

Delete en tablas: titulacion. Puedo eliminar cualquier fila de una tabla? Restriccion de integridad: Restrict/Cascade

Ojo: Titulacion se relaciona con Asignatura, y a la vez Asignatura se relaciona con Alumnoasignatura… Que pasa si esta en Cascada?....: Tanto Titulacion como Asignatura.

create PROCEDURE numeric(6)) AS if exists (select * from titulacion where begin DELETE titulacion WHERE return 0 end else return 1

int print 'Se elimino registro en titulacion' else print 'no existe la titulacion a eliminar'

Si solo esta en cascada Titulacion y no Asignatura (por diseño y reglas de negocio)… Tenemos 2 opciones:

1.- Forzamos la eliminacion en alumnoasignatura.

create PROCEDURE numeric(6)) AS numeric(6) if exists (select * from titulacion where begin if exists (select * from alumnoasignatura, asignatura, titulacion where alumnoasignatura.idasignatura=asignatura.idasignatura and begin delete alumnoasignatura where idasignatura in (select idasignatura from asignatura where DELETE titulacion WHERE return 0 end else begin DELETE titulacion WHERE return 0 end else return 1

int print 'Se elimino registro en titulacion' else print 'no existe la titulacion a eliminar'

Otra forma de hacer lo mismo: llamamos a otro procedimiento almacenado dentro del que ejecutamos.

create PROCEDURE numeric(6)) AS numeric(6) if exists (select * from titulacion where begin if exists (select * from alumnoasignatura, asignatura, titulacion where alumnoasignatura.idasignatura=asignatura.idasignatura and begin exec DELETE titulacion WHERE return 0 end else begin DELETE titulacion WHERE return 0 end else return 1

create procedure borraralasig numeric(6)) as delete alumnoasignatura where idasignatura in (select idasignatura from asignatura where

int print 'Se elimino registro en titulacion' else print 'no existe la titulacion a eliminar'

2.- Simplemente no se puede eliminar el registro en alumnoasignatura.

create PROCEDURE numeric(6)) AS numeric(6) if exists (select * from titulacion where begin if exists (select * from alumnoasignatura, asignatura, titulacion where alumnoasignatura.idasignatura=asignatura.idasignatura and return 2 else begin DELETE titulacion WHERE return 0 end else return 1

int print 'Se elimino registro en titulacion' else print 'no existe la titulacion a eliminar' print 'no se puede eliminar la titulacion ya que tiene ramos inscritos'

Podemos guardar los datos eliminados??

Se elimina una titulacion y se guarda id y nombre, ademas del usuario que elimino y la fecha… Se asume delete on cascade…

Creamos la tabla para guardar los datos: create table auditoriatit (cod SMALLINT IDENTITY(1,1) NOT NULL primary key, idtit numeric(6), nombre varchar (20), usuario varchar (20), fecha datetime)

create PROCEDURE numeric(6)) AS varchar(20) if exists (select * from titulacion where begin from titulacion where from titulacion where insert into auditoriatit (idtit, nombre, usuario, fecha) user, getdate()) DELETE titulacion WHERE return 0 end else return 1

int print 'Se elimino registro en titulacion y se hizo backup' else print 'no existe la titulacion a eliminar'

select * from auditoriatit

Podria hacerse la insercion a auditoria llamando a otro procedimiento almacenado dentro del actual…

Insert, Update, Delete…se pueden hacer con el Asistente de SQL SERVER.