Guia No.1 DSIW2 Sec 01, Ing. Tomas Urbina

Anuncio
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.)
Descargar