PROCEDIMIENTOS:
Un Store Procedure es un elemento de base de datos reutilizable almacenado que realiza alguna operación en la base de datos.
Contiene código SQL que puede, entre otras cosas, insertar, actualizar o eliminar registros.
Los procedimientos almacenados pueden alterar la estructura de la base de datos. Por ejemplo, se puede utilizar un procedimiento almacenado para añadir una columna de tabla o borrar una tabla.
Un Store Procedure también puede llamar a otro Store Procedure, así como aceptar entradas y devolver múltiples valores al procedimiento llamado en forma de parámetros de salida.
--CREAMOS UN PROCEDIMIENTO ALMACENADO PARA INSERTAR UN NUEVO JUGADOR EN LA TABLA JUGADORES
CREATE PROCEDURE REGISTRAR_JUG @cod_jug char(3), @nom_jug varchar(220), @fec_naci date
AS
-- USAMOS UN TRY CATCH PARA CAPTURAR LOS POSIBLES ERRORES
BEGIN TRY
INSERT INTO JUGADOR(C_JUGADOR,N_JUGADOR,D_NACIMIENTO)
VALUES(@cod_jug,@nom_jug,@fec_naci)
END TRY
BEGIN CATCH
ROLLBACK
PRINT ERROR_MESSAGE()
END CATCH
-- ejecutamos el procedimiento almacenado la consulta
EXEC REGISTRAR_JUG 'J30','JUAN CARLOS', '10/10/2010'
PRINT ERROR_MESSAGE();
CREATE PROCEDURE REGISTRAR_JUG @cod_jug char(3), @nom_jug varchar(220), @fec_naci date
AS
-- USAMOS UN TRY CATCH PARA CAPTURAR LOS POSIBLES ERRORES
BEGIN TRY
INSERT INTO JUGADOR(C_JUGADOR,N_JUGADOR,D_NACIMIENTO)
VALUES(@cod_jug,@nom_jug,@fec_naci)
END TRY
BEGIN CATCH
ROLLBACK
PRINT ERROR_MESSAGE()
END CATCH
-- ejecutamos el procedimiento almacenado la consulta
EXEC REGISTRAR_JUG 'J30','JUAN CARLOS', '10/10/2010'
PRINT ERROR_MESSAGE();
Ahora implementaremos un procedimiento que liste los jugadores de un Equipo en la Base de Datos CAMPEONATO
--Este procedimiento lista todos los jugadores que
--integraron un equipo en particular
CREATE PROCEDURE SP_JUGXEQUIP @COD_EQUIP CHAR(2)
AS
BEGIN
-- la sentencia as puede obviarse para el renombramiento
-- el uso de distinct es para que no se repitan los datos -- iguales
SELECT distinct J.C_JUGADOR, J.N_JUGADOR, JEC.C_EQUIPO, E.N_EQUIPO FROM dbo.JUGADOR AS J
JOIN dbo.JUG_X_EQ_X_CAMP AS JEC ON J.C_JUGADOR = JEC.C_JUGADOR
JOIN dbo.EQUIPO AS E ON JEC.C_EQUIPO = E.C_EQUIPO
WHERE JEC.C_EQUIPO = @COD_EQUIP
END
-- ejecutamos el Store Procedure para que liste todos los jugadores que alguna vez formaron
--parte del equipo, en este caso, E2
EXEC SP_JUGXEQUIP 'E2'
Aqui podemos observar el resultado.
Crearemos un procedimiento que registre los movimientos realizados por un jugador y su comentario en la BASE DE DATOS AJEDREZ
-- procedimiento que inserta un movimiento en la tabla movimiento
@pos_ini varchar(7),@pos_fin varchar(7),@comentario varchar(50)
as
begin try
insert into MOVIMIENTO
values (@Nro_Orden, @Nro_partida, @nom_ficha,@pos_ini,@pos_fin ,@comentario)
end try
begin catch
print error_message()
end catch
execute SP_InsertarMov 1,1,'caballo','2,4','3,7','mal movimiento'
ejecutamos el procedimiento almacenado y vemos como se ha insertado los valores en la tabla movimiento
No hay comentarios:
Publicar un comentario