UNIVERSIDAD DEL ISTMO CAMPUS IXTEPEC LIC. INFORMATICA GRUPO 508 PROCEDIMIENTOS ALMACENADOS EN SQL SERVER 2000



Documentos relacionados
Formato para prácticas de laboratorio

Bases de Datos SQL 1 SQL. Jorge Pérez R. Universidad de Talca, II Semestre 2006

Trabajos de Ampliación. Bases de datos NoSQL.

GUIA DE LABORATORIO N 9 B. (000Webhost Php- Para desarrollar en casa)

BASES DE DATOS AVANZADAS Transacciones en MYSQL

Diseño de bases de datos

Tema: Procedimientos almacenados y cursores. Facultad : Ingeniería Escuela : Computación Asignatura: SQL SERVER. GUÍA 2 Pág. 1

APUNTES: APLICACIONES WEB BASADAS EN PHP Y MYSQL Página 1 de 5

Tema: PROCEDIMIENTOS ALMACENADOS.

Restricciones de Integridad

Administradores de Bases de Datos Studio.NET 2005 Y SQL Server Barrios

T12 Vistas y tablas temporales

: COMPUTACIÓN E INFORMATICA : Ingeniería de Software Ingeniería de Redes y Comunicaciones : Administración de Bases de Datos I : T-INF127

Repaso. Laboratorio Informix. Stored Procedures. Ejemplo. Creación de stored procedures. Sql en un Procedimiento

MySQL y Sesiones en PHP. Área de Ingeniería Telemática

Iniciando con Oracle. Índice de contenido. Ingresando a Oracle. Cambiando Su Contraseña. Ingresando un Comando SQL en SQL*Plus

- Bases de Datos - - Diseño Físico - Luis D. García

CURSO DE SQL SERVER 2005

Laboratorio Informix. Stored Procedures Triggers

6. PROGRAMACIÓN CON TRANSACT-SQL

PL/SQL. Con PL/SQL vamos a poder programar las unidades de programa de la base de datos Oracle:

Lenguaje para descripción de datos

Un ejemplo teórico de trigger podría ser éste:

SQL. (...la guía básica de supervivencia de dmi) Universidad de los Andes Demián Gutierrez Enero

BASE DE DATOS - CURSO 02/03 PRÁCTICA 2: SQL: Lenguaje de definición de datos (DDL)

ADMINISTRACIÓN DE BASE DE DATOS

Paso del E-R a tablas

Bases de datos relacionales y el modelo entidad-relación

MANUALITO MS-SQL SERVER

m047a Curso Programando una Base de Datos SQL Server 2008, 36 h Creación B.D. y Constraints

Introducción a PostgreSQL con PHP

Bases de Datos SQL 1 SQL. Jorge Pérez R. Universidad de Talca, II Semestre 2006

Practica 9. Correo Varchar 30 Ninguna Puesto varchar 10 Ninguna Salario Int 10 Ninguna. Realizar lo siguiente.

Tablas y Campos Nuevos

UNIVERSIDAD NACIONAL DE SAN AGUSTÍN FACULTAD DE PRODUCCIÓN Y SERVICIOS ESCUELA PROFESIONAL DE INGENIERÍA DE SISTEMAS LABORATORIO DE BASES DE DATOS 1

Formato para prácticas de laboratorio

6 - Recuperar algunos registros (where)

Estándar de desarrollo de aplicaciones del Govern de les Illes Balears

Curso SQL Nivel Avanzado 1. Miguel Jurado García

Base de Datos Práctica 1.

SENTENCIAS Y CONSULTAS EN SQL SERVER

Programación de Consultas SQL ADO.Net LDP / DUOC-AV

6- Combinación de tablas

4- Uso de sentencias para el envió y extracción de datos

BASE DE DATOS QUÉ ES UNA BASE DE DATOS?

El lenguaje de manipulación de datos (DML) es una parte fundamental de SQL.

LENGUAJE ESTRUCTURADO DE CONSULTAS SQL (2)

Otros objetos de Base de Datos

SISTEMA DE ENCUESTAS CON PHP Y MYSQL

TEMA 6: MODIFICACIÓN DE LA BASE DE DATOS EN SQL

Base de datos I Facultad de Ingeniería. Escuela de computación.

OBJETIVOS METODOLOGÍA PROCEDIMIENTO 1.- Trabajo con el servidor de bases de datos Sybase

BASES DE DATOS EN VISUAL BASIC ACCESS + SQL

[ EDICION ESPECIAL] En el siguiente ejemplo se agrega un archivo de datos de 5 MB a la base de datos BD_Ejemplo01.

Tutorial : Hacer Combos Dependientes tipo Departamento Ciudad en ASP. Net

EXAMEN TEMAS 3, 4 y 5. CREACIÓN Y EXPLOTACIÓN DE UNA BASE DE DATOS

5- Uso de sentencias avanzadas

Construcción de una aplicación web para crear un sistema de encuestas con la tecnología PHP y la base de datos MySQL.

COMANDOS DE SQL, OPERADORES, CLAUSULAS Y CONSULTAS SIMPLES DE SELECCIÓN

Objetos de la Base de Datos

LENGUAJE SQL. En Mysql se utiliza un subconjunto de SQL (update, insert into, delete, select, truncate,etc).

Introducción a PHP. * No es necesario declarar previamente las variables.

Restricciones (constraints) FOREIGN KEY

Tema: Disparadores Parte I.

FICHEROS Y BASES DE DATOS (E44) 3º INGENIERÍA EN INFORMÁTICA. Tema 9. Reglas de Integridad

Formato para prácticas de laboratorio

Aplicaciones de las vistas Concepto de vista Vistas en SQL Vistas en SQL.

El usuario puede utilizar esta tabla derivada como una tabla más, en sus consultas.

Índice. iii. Objetivos... 24

Una vez creada la BD podemos pedirle a MySQL que nos muestre todas las BD existentes. Para eso utilizamos la siguiente instrucción:

Manejo de datos BLOB con PHP y MySQL

SQL (Structured Query Language)

UNIVERSIDAD NACIONAL EXPERIMENTAL POLITÉCNICA DE LA FUERZA ARMADA NACIONAL EXTENSIÓN BARQUISIMETO BARQUISIMETO ESTADO. LARA

Modulo 1 El lenguaje Java

Programación SQL. Lucio Salgado Diciembre 2008

GALA CONCEPTO COMMIT, ROOLBACK SAVEPOINTS (SAVE TRANSACTION) No Consultas. Definiciones Transacciones ( L33 )

SQL PROCEDURAL Triggers y Stored Procedures. Ing. Gustavo A. Correa Reina UNCPBA 2008

USANDO SQL. EN BASE DE Ooo.

Formatos para prácticas de laboratorio

INSTRUCTIVO 003/2012

Ejercicios para Access Create Tabla, Insert, Update y Delete

Curso Online de Microsoft

Si queremos modificar la contraseña de sys, una vez que accedamos al sistema como sys, escribiremos la sentencia:

Es un lenguaje de consulta estructurado establecido claramente como lenguaje de alto nivel estándar para sistemas de base de datos relacionales.

2- Intente crear una tabla llamada "clientes" UTILIZANDO el modo de Consulta, en el modo SQL :

Nociones de performance

Comerciales. Comisiones en Documentos de Venta WhitePaper Enero de 2008

Aviso Legal El presente libro electrónico se distribuye bajo Attribution-NonCommercial- NoDerivs 3.0 Unported

Oracle básico (IV): Programación en PL/SQL

LENGUAJE DE CONSULTA ESTRUCTURADO - SQL CONTENIDO

Curso de PHP con MySQL Gratis

Usando los disparadores de la base de datos con el Blended Agent para hacer el proceso específico a la aplicación

PHP Perfect SQL v1.0 (SQL perfectas en PHP)

Práctica 3. Consultas SQL

)*&+,,,+,,-!. %!! " " ) "* / !.3 / # / 5#!1!6#! "!0

Oracle 12c DISEÑO Y PROGRAMACIÓN

Bases de Datos: Structured Query Language (SQL)

Integridad en sistemas de bases de datos relacionales

INTRODUCCION. entidades. Modelo lógico de la base de datos. Matricula. carne. codigo_curso. año semestre nota. propiedades

Oracle Básico PL/SQL

Transcripción:

PROCEDIMIENTOS ALMACENADOS EN SQL SERVER 2000 Creación de la base de Datos Pulsamos F5 para Actualizar, y una vez posicionados en nuestra base de datos,se crean los scripts que seran soportados por el manejador para la creación de las tablas DEL SCRIPT: Script_SqlServer_Tarea3_sP_cREAbd EN LA SIG PAGINA SE MUESTRAN LOS SCRIPTS COMPLETOS

create table Maquinas ( clave int identity (1,1) not null primary key, marca varchar (11) not null default ('DELL') check (marca in ('DELL','COMPAQ', 'HP','ACER','PC_ENLINEA','LENOVO')), usuario varchar(50), depto_adscrito varchar(50), fecha_compra datetime check (fecha_compra <= getdate()), precio_compra money check (precio_compra >=100.0), fecha_ultima_revision datetime check (fecha_ultima_revision <= getdate()) create table Supervisor( Supervisor_id int Identity (2,1) primary key not null, nombre_supervisor varchar (25), titulo varchar (10) default ('ING') CHECK (titulo in ('MTRO','DR')), especialidad varchar (30) default ('MANTENIMIENTO DE PC S') create table taller ( numero INT identity (1,1) not null primary key, Encargado varchar(50) not null unique, numero_trabajadores integer check (numero_trabajadores >=1 and numero_trabajadores <=21), presupuesto money check (presupuesto>= 12000.00) create table revisiones( clave_maquina integer not null, clave_taller integer not null, fecha_entrada datetime, empleado varchar(50), causa varchar(60), supervisor int, precio money check(precio >100.00), num_reporte integer identity (1,1), tipo char (10) check( tipo in ('preventivo','correctivo')), primary key (clave_maquina,clave_taller,fecha_entrada), foreign key (clave_maquina) references Maquinas (clave) on delete cascade on update cascade, foreign key (supervisor) references Supervisor (Supervisor_id), foreign key (clave_taller) references taller (numero) on delete cascade on update cascade CREATE TABLE REPORTES ( maqu INT primary key, total int, foreign key (maqu) references MAQUINAS (clave) on delete cascade on update cascade

REALIZAR LAS INSERCIONES EN LAS TABLAS GENERADAS, (ver archivo Insert_Con_autoIncrement_inserciones_para_lastablas) En la tabla MAQUINAS se insertan 6 columnas y el auto_increment automáticamente va generando la llave primaria para cada máquina Se crea TALLERES que puedan atender mas de una maquina, a los cuales se les asigna un encargado y un presupuesto para poder atender la demanda. Las revisiones están compuestas por la relacion entre las maquinas y los talleres, cada vez que una maquina va al taller se genera un registro de revision La tabla REPORTES nos lleva un contro de cuantas veces una maquina ha ingresado al taller, independietemente del taller que sea. Los supervisores funciona como auxiliares de las revisiones, es decir supervisan el trabajo que se hace en un taller por un determinado equipo. A continuación se describe el procedimiento almacenao empleado en el ejercicio. Archiv: sp_sinupdate

1.-Se declaran los parámetros que seran mandados. 2.-Los parametros manejados son columnas de la tabla maquinas, por lo que en el primer query, se determina si ya existe una maquina con esas columnas. //se inicia transaccion 3.-Si la maquina no con las caracteristicas mandadas como datos al proc. Almacenado aun no existe en la base de datos, se realiza una inserción al registro maquinas. 4.- En el siguiente query, se obtiene a traves de una consulta la llave de la maquina 5.- si la maquin no existe en la base de datos se hace un roll back 6.- se obtiene de igual manera el Taller (id), en base al nombre del encargado. 7.- se obtienen de la tabla de reportes de generado por la maquina analizada 8.- Esta bandera, perimite decidir: Si la maquina del registro es nuevo, se genera un nuevo registro en la tabla Reportes, que lleve el control de esta nueva maquina, si no simplemente realiza una actualizacion en Reportes

LLAMADA AL PROCEDIMIENTO ALMACENADO. (archivo: testscript_sp_sinupdate) LOS DATOS QUE SE ENVIAN SON: Marca, usuario, y el Depto, todos ellos pertenecen a las caracteristicas de la tabla MAQUINAS, el nombre del Encargado servira para poder vincular la revision a un taller, costo, causa, matenimiento y fecha serviran para poder crear un resgitro en la tabla de REVISIONES. LAS CARACTERISTICAS INTRODUCIDAS COINCIDEN CON UNA MAQUINA EXISTENTE EN LA BASE DE DATOS, EL SP, OBTIENE EL ID DE ESA MAQUINA E INMEDIATAMENTE REALIZA UNA INSERCION DE ACTUALIZACION EN LA TABLA DE REPORTES.

VEAMOS COMO QUEDO LA TABLA DE REPORTES. RECORDEMOS QUE EN AL INSERTAR EN LAS TABLAS, A LA MAQUINA UNO LE GENERAMOS UNA INSERCION DE 10 REPORTES, (ver script de inserciones), AHORA ESE REGISTRO FUE MODIFICADO Ahora analizaremos un caso donde las caraceteristicas no coincidan con ninguna de las maquinas hasta ahora introducidas en la base de datos, entonces el porcedimiento almacenado generara un nuevo registro en la tabla de maquinas, seguido creara un registro en la tabla de revisiones, y finalmente creara un historial de esa nueva maquina en la tabla de reportes.

CREACION DE TRIGGERS Para efectos de clase el análisis del uso de triggers lo haremos sobre la misma base de datos en la que trabajamos los procedimientos almacenados, a fin de que puedan hacerse una analogía que permita diferenciar entre uno y otro. Nota (no es necesario crear SP antes, los triggers son independientes y pueden funcionar con solo crear la Base de Datos y realizar las inserciones en ella) Crearemos un trigger a partir del sig. Script: scrip_tigger.txt A continuación analizaremos el código del Script: create trigger Nuevo_reporte2 on dbo.revisiones for insert as declare @count as smallint declare @exis as smallint declare @cuenta as smallint select @count = clave_maquina from inserted -- from dbo.revisiones print 'cadena -..'+ convert(char(1),@count ) select @exis = maqu,@cuenta=total from dbo.reportes where @count=maqu if @exis >0 begin update dbo. REPORTES set TOTAL=@cuenta+1 where @exis =maqu print 'modificando Registro!!' end else begin insert into dbo.reportes values (@count,1 ) end Las palabras create trigger indican al manejador que se esta creando un trigger sobre la base de datos. La palabra on indica en especifico sobre que tabla se esta creando el trigger. Declaramos unas variables que serviran del sig. Modo. @count = clave de la maquina que se insertó @exis = clave de esa maquina en la tabla de REPORTES @cuenta= numero de reportes de esa maquina en la tabla de REPORTES La idea general de este trigger, es realizar un disparo cada vez que una maquina llegue a revisiones, a fin de llevar un control de cuantas veces esta maquina ha estado en algún taller. Los controles de flujo, sirven para determinar la accion a realizar según la clave de la maquina, es decir si la maquina insertada ya tiene un historial habra que actualizarlo, y de no ser asi, se crear un nuevo historial para esta maquina. Para probar el funcionamiento de este trigger, mandaremos una inserción a la tabla de REVISIONES, primero con un valor que ya existe para que el trigger actualice en la tabla de REPORTES, y después una máquina nueva para que el trigger le cree un nuevo historial a esa maquina en la tabla de REPORTES.

CONSULTA: insert into Revisiones (clave_maquina, clave_taller,fecha_entrada,empleado,causa,supervisor,precio,tipo) values (1,2,getdate(),'Casimiro laroa','fallas De paginacion',2,1000.00,'preventivo' Tenemos 10 reportes para la maquina dos antes de realizar la inserción. Ejecutamos la inserción, y el trigger automáticamente se dispara El disparador actualiza en la tabla de REPORTES, y ahora el total de reportes de la maquina dos son 11.