Você está na página 1de 3

2 - PRÁCTICA 12 – PROCEDIMIENTOS ALMACENADOS

Crear la siguiente base de datos: bodega

Ingreso de registro a las tablas

PRODUCTO

PEDIDOS
EJERCICIOS:

1. Crear un procedimiento almacenado que ingrese los valores en la tabla PRODUCTOS, y


deberá verificar que el código del producto no exista para poder insertarlo, en caso
que el código del producto ya exista enviar un mensaje que diga ESTE PRODUCTO YA
HA SIDO INGRESADO.

CODIGO:

CREATE PROCEDURE INSETAR_PRODUCTOS


@a char(7), @b varchar(25), @c int
AS
DECLARE @Id char(7)
--DECLARE @Desc varchar(25)
--DECLARE @Exist int
IF ((@a<>'') AND (@b<>'') AND (@c<>'') )
BEGIN
/*Como en este caso solo necesitamos el idprod no es necesario
inicializar las variables
que le corresponde a los demas campos*/
SELECT @Id = idprod
FROM PRODUCTOS
WHERE idprod = @a

IF(@Id=@a)
BEGIN
PRINT 'EL CODIGO DE PRODUCTO YA EXISTE EN LA BASE DE DATOS'
RETURN
END

ELSE
BEGIN
INSERT INTO PRODUCTOS(idprod,descripcion, existencias)
values(@a,@b,@c)
PRINT 'EL PRODUCTO SE HA INGRESADO CORRECTAMENTE'
END

END
ELSE
BEGIN
PRINT 'NO SE PUEDEN INGRESAR VALORES NULOS'
RETURN
END
2. Crear un procedimiento almacenado que permita realizar un pedido EN LA TABLA
PEDIDOS, este procedimiento deberá verificar si el código del producto ingresado
existe en la tabla PRODUCTO, además si la cantidad a pedir del producto es mayor a la
existencia del producto deberá enviar un mensaje que diga EXISTENCIA DEL
PRODUCTO INSUFICIENTE, en caso que la cantidad a pedir sea menor o igual deberá
modificar el valor de la existencia.
ALTER PROCEDURE PEDIDOS_T
@x char(7), @y char(7), @z int
AS
DECLARE @Idprod char(7)
DECLARE @cantidad int
IF ((@x<>'') AND (@y<>'') AND (@z<>'') )
BEGIN
/*Como en este caso solo necesitamos el idprod no es necesario
inicializar las variables
que le corresponde a los demas campos*/
SELECT @Idprod = idprod, @cantidad = existencias
FROM PRODUCTOS
WHERE idprod = @x and existencias = @z

IF(@Idprod != @x)
BEGIN
PRINT 'EL CODIGO DE PRODUCTO NO EXISTE EN LA BASE DE DATOS'
RETURN
END

ELSE
IF (@Idprod = @x AND @cantidad < @z)
BEGIN
INSERT INTO PEDIDOS(idprod,idpedido, cantidad)
values(@x,@y,@z)
INSERT INTO PRODUCTOS(existencias) VALUES (@cantidad - @z)
PRINT 'EL PEDIDO SE HA INGRESADO CORRECTAMENTE'
END

END

ELSE
BEGIN
PRINT 'NO SE PUEDEN INGRESAR VALORES NULOS'
RETURN
END

EXEC PEDIDOS_T 'PROC3','PED02',13

Você também pode gostar