Guia No.1 DSIW2 Sec 01, Ing. Tomas Urbina Procedimientos almacenados en Transact SQL Vamos a crear la estructura de la BD y le agregaremos registros para trabajar con SP (Store Procedures). CREATE DATABASE LABORATORIO GO USE LABORATORIO GO CREATE TABLE PACIENTE ( IDPACIENTE INT PRIMARY KEY IDENTITY (1,1), NOMBRE VARCHAR(25), APELLIDO VARCHAR(25), FECHANACIMIENTO DATETIME, DUI VARCHAR(10)); GO INSERT INSERT INSERT INSERT INSERT GO INTO INTO INTO INTO INTO PACIENTE PACIENTE PACIENTE PACIENTE PACIENTE VALUES('TOMAS','URBINA','28/02/84','12345678-9'); VALUES('PEDRO','MORENO','25/10/78','22345678-9'); VALUES('LIONEL','MESSI','21/09/88','32345678-9'); VALUES('ELSA','PITO','28/02/84','42345678-9'); VALUES('ALAN','BRITO','10/12/90','52345678-9'); Vamos a ejecutar una consulta SQL de todos los registros: SELECT * FROM PACIENTE GO Guia No.1 DSIW2 Sec 01, Ing. Tomas Urbina Procedimientos almacenados en Transact SQL Un procedimiento es un programa dentro de la base de datos que ejecuta una acción o conjunto de acciones especificas. Un procedimiento tiene un nombre, un conjunto de parámetros (opcional) y un bloque de código. En Transact SQL los procedimientos almacenados pueden devolver valores (numerico entero) o conjuntos de resultados. Para crear un procedimiento almacenado debemos emplear la sentencia CREATE PROCEDURE. CREATE PROCEDURE <nombre_procedure> [@param1 <tipo>, ...] AS -- Sentencias del procedure Para modificar un procedimiento almacenado debemos emplear la sentencia ALTER PROCEDURE. ALTER PROCEDURE <nombre_procedure> [@param1 <tipo>, ...] AS -- Sentencias del procedure Vamos a crear un SP para obtener la consulta de todos los pacientes: CREATE PROCEDURE SP_ALLPACIENTES AS BEGIN SELECT * FROM PACIENTE END GO Guia No.1 DSIW2 Sec 01, Ing. Tomas Urbina Y ahora executamos el SP: EXEC SP_ALLPACIENTES GO Hoy hagamos un SP que reciba un parametro y en base a el hacer la consulta de pacientes (vamos a consultar los pacientes por # de DUI): CREATE PROCEDURE SP_PACIENTESxDUI @DUI VARCHAR(10) AS BEGIN SELECT * FROM PACIENTE WHERE DUI=@DUI END GO Y lo probamos de la manera siguiente: EXEC SP_PACIENTESXDUI '12345678-9' GO Facilisimo! Y para mejorar esto vamos a hacer un SP para insertar pacientes: CREATE PROCEDURE SP_ADDPACIENTES @NOMBRE VARCHAR(25), @APELLIDO VARCHAR(25), @FECHA DATETIME, @DUI VARCHAR(10) AS BEGIN INSERT INTO PACIENTE (NOMBRE,APELLIDO,DUI,FECHANACIMIENTO) VALUES(@NOMBRE,@APELLIDO,@DUI,@FECHA) END GO Guia No.1 DSIW2 Sec 01, Ing. Tomas Urbina Probemoslo : EXEC SP_ADDPACIENTES 'LUIGUI','MARIO','15/10/1975','87654321-9' GO Esto podria dar error por las fechas dependiendo de la configuracion regional del servidor o equipo en el que la ejecuten, esperemos que no. EJERCICIOS. 1) Cree el resto de las tablas según el ejercicio hecho en la clase anterior (Laboratorio Clinico) 2) Cree los procedimientos respectivos de busqueda general, busqueda por paramentros e insertar para cada tabla. 3) Cree los procedimientos almacenados para eliminar registros de las tablas creadas por un campo especifico (ej: eliminar paciente por # de dui, etc.)