Este documento presenta 6 procedimientos almacenados que manipulan datos en diferentes tablas de una base de datos. Los procedimientos incluyen obtener datos específicos, insertar registros, y devolver valores usando la instrucción RETURN. Cada procedimiento se describe brevemente con su propósito y código SQL.
1. INSTITUTO TECNOLOGICO SUPERIOR DE LERDO
RAFAEL A. QUINTANA HERRADA
TEMA:
PROCEDIMIENTOS ALMACENADOS
MATERIA:
TALLER DE BASES DE DATOS
21 de marzo de 2010
2. Procedimientos almacenados
(Proc. 1)
Mediante este proceso almacenado, veremos la tabla productos de nuestra base de
datos ya creada en SQL, en este proceso almacenado arrojara parámetros de salida.
La cual mostrara el precio_compra de la tabla anteriormente mencionada.
CREATE PROCEDURE ObtenerPreciocompra @Nombre nchar (20),
@precio_compra nchar (10)
Output
AS
BEGIN
SELECT @Nombre = NOMBRE
FROM Productos
WHERE PREC_COMPRA = @precio_compra
END
DECLARE @precio_compra nchar (10)
EXEC ObtenerPreciocompra '200700000001', @saldo output
PRINT @precio_compra
Una vez finalizado el procedimiento almacenado nos arrojara el precio_compra de la
tabla productos.
3. Procedimientos almacenados
(Proc. 2)
El siguiente ejemplo muestra un procedimiento almacenado que devuelve valores.
Utilizando la instrucción return.
En esta ocacion utilizaremos la tabla facturas de la base de datos negocio de SQL.
CREATE PROCEDURE regresarfactura @fecha varchar (20)
AS
BEGIN
IF (SELECT id_venta FROM FACTURAS
WHERE fecha = @fecha) =’marzo’
BEGIN
RETURN 1
END
ELSE
RETURN 0
END
Posteriormente mente mostraremos el resultado de las anteriores codigos
DECLARE @valor int
EXEC @valor = regresarfactura 'tr01'
PRINT @valor
4. Procedimientos almacenados
(Proc. 3)
Mediante este procedimiento almacenado insertaremos un registro en la tabla
clientes, el nombre del procedimiento lo llamaremos agregarregistro.
create procedure agregarregistro @id_prod nchar(10),@Nombre
nchar(19),@precio_vta nchar(10),@precio_compra,@Descripcion
nchar(10),@id_prov nchar(10),stock nchar(10),@foto nchar(10),@redes
nchar(20)
AS
INSERT INTO CLIENTES
(id_prod,Nombre,precio_vta,precio_compra,Descripcion,id_prov,stock,f
oto,redes) values
(@id_prod,@Nombre,@precio_vta,@precio_compra,@Descripcion,@id_prov,@
stock,@foto,@redes)
El siguiente ejemplo muestra la ejecución del procedimiento almacenado
anterior.
EXEC agregacliente 'Rafael', 'Quintana', 'Herrada'
5. Procedimientos almacenados
(Proc. 4)
Mediante este proceso almacenado, veremos la tabla Garantías de nuestra base de
datos ya creada en SQL, en este proceso almacenado arrojara parámetros de salida.
La cual mostrara el Folio_garantia de la tabla anteriormente mencionada.
CREATE PROCEDURE Obtenerfolio @folio_gar nchar (20),
@Folio_fact nchar (10)
Output
AS
BEGIN
SELECT @Folio_gar = Folio_garantia
FROM Garantias
WHERE FOLIOFACT = @folio_fact
END
Una vez finalizado el procedimiento almacenado nos arrojara el precio_compra de la
tabla productos.
DECLARE @Folio_garantia nchar (10)
EXEC Obtenerfolio 'g123', @folio_fact output
PRINT @folio_fact
6. Procedimientos almacenados
(Proc. 5)
El siguiente ejemplo muestra un procedimiento almacenado que devuelve valores.
Utilizando la instrucción return.
En esta ocacion utilizaremos la tabla ventas de la base de datos negocio de SQL.
CREATE PROCEDURE regresarventa @fecha varchar (20)
AS
BEGIN
IF (SELECT id_venta FROM VENTAS
WHERE total = @total) <=1000
RETURN 1
END
ELSE
RETURN 0
END
En seguida se mostrara el resultado del anterior codigo
DECLARE @datos int
EXEC @datos = regresarventa 'tr01'
PRINT @datos
7. Procedimientos almacenados
(Proc. 6)
Mediante este procedimiento almacenado insertaremos un registro en la tabla ventas,
el nombre del procedimiento lo llamaremos agregarregistro.
create procedure agregarregistro @id_venta nchar(10),@fecha
nchar(19),@cantidad nchar(10),@id_prod,@id_cte nchar(10),@total
AS
INSERT INTO VENTAS
(id_venta,fecha,cantidad,id_prod,id_cte,total) values
(@id_venta,@fecha,@cantidad,@id_prod,@id_cte,@total)
El siguiente ejemplo muestra la ejecución del procedimiento almacenado
anterior.
EXEC agregaregistro 'Beatriz', 'Gurrola', 'Garcia'