Está en la página 1de 10

Instituto Tecnológico Superior de Lerdo

ITSL

PROCEDIMIENTOS ALMACENADOS
EJEMPLOS EN SQL SERVER 2008

Juan Francisco González Reyes – 07230471

ITSL

Ciudad Lerdo, Durango, México

1
Entorno para el Desarrollo

Base de datos Negocio


Supongamos que tenemos una base de datos dedicada a la venta de equipo de cómputo y
accesorios.
En este ejemplo se crean y ejecutan 6 procedimientos almacenados.

Caso 1: Mostrar los productos agotados en existencia

El negocio cuenta con la presente información en la tabla “Productos”:

Para crear un proceso almacenado que muestre los productos con existencia en “0”, ejecutamos la
siguiente consulta:
Create Procedure stock_0
as
select *
from Productos
Where stock='0'
Return
Go

2
 En la primera línea estamos definiendo el nombre del procedimiento.
 Después del AS, creamos la sentencia selectiva de la tabla PRODUCTOS, que va a elegir
todo registro que tenga el numero de stock = 0

Para ejecutar la consulta, simplemente escribimos EXEC + el nombre del procedimiento:

exec stock_0

Como resultado obtendremos solamente los productos agotados:

Caso 2: Mostrar las ventas del mes “x”

El negocio cuenta con la presente información en la tabla “Ventas”:

3
Los procedimientos pueden aceptar parámetros de entrada y variables.
Para crear un proceso almacenado que seleccione las ventas de un mes en particular, ejecutamos la
siguiente consulta:
Create Procedure Ventas_Mes
@Mes Int
AS
Select *
from Ventas
Where Month(fecha)=@Mes
Return
Go

 En la primera línea estamos definiendo el nombre del procedimiento.


 En la siguiente estamos declarando la variable @Mes como tipo INT
 Después del AS, creamos la sentencia selectiva de la tabla VENTAS, que va a elegir todo
registro que tenga el numero de mes igual a @Mes

Para ejecutar la consulta, simplemente escribimos EXEC + el nombre del procedimiento + el valor
que vamos a guardar en @Mes

exec Ventas_Mes '12'

Como resultado obtendremos solamente las ventas hechas en el mes de Diciembre:

4
Caso 3: Determinar las ventas “con envío gratis”

Supongamos que las compras en ese negocio cuenten con envío gratis si el monto de éstas fuera
mayor a 1500, entonces crearemos el siguiente procedimiento:

Create Procedure ventas_envio_gratis


@Monto Int
AS
Select *
from Ventas
Where Total>@Monto
Return
Go

 En la primera línea estamos definiendo el nombre del procedimiento.


 En la siguiente estamos declarando la variable @Monto como tipo INT
 Después del AS, creamos la sentencia selectiva de la tabla VENTAS, que va a elegir todo
registro que tenga el monto mayor al valor que tenga la variable @Monto

Para ejecutar la consulta, simplemente escribimos EXEC + el nombre del procedimiento + el valor
que vamos a guardar en @Mes

exec ventas_envio_gratis '1500'

Como resultado obtendremos solamente las ventas hechas en el mes de Diciembre:

5
Caso 4: Registrar un proveedor

Mediante procedimientos almacenados podemos agregar registros a la tabla PROVEEDORES,


simplemente ejecutando la siguiente consulta:
create procedure registrar_proveedor
@id nchar(10),
@nombre nchar(15),
@pais nchar(15)

as
insert into Proveedores
(id, nombre, pais)
values
(@id, @nombre, @pais)

 En la primera línea estamos definiendo el nombre del procedimiento.


 En las siguientes líneas estamos declarando las variables, que normalmente su tipo de dato
es similar al campo a la que van referidas.
 Después del AS, se encuentra la sentencia INSERT para la tabla PROVEEDORES, que va
agregar un nuevo registro con todos los campos obtenidos del procedimiento.

Para ejecutar la consulta, simplemente escribimos EXEC + el nombre del procedimiento + los
valores que queremos guardar en los campos:

exec registrar_proveedor '999', 'New Proveedor', 'Portugal'

Como resultado obtendremos un nuevo registro en la tabla proveedores:

6
Caso 5: Registrar una venta

Mediante procedimientos almacenados podemos agregar registros a la tabla CLIENTES,


simplemente ejecutando la siguiente consulta:

create procedure registrar_vta


@id_vta nchar(10),
@id_producto nchar(10),
@id_cte nchar(10),
@fecha date,
@cantidad int,
@total int
As

insert into Ventas

(id_vta, id_producto, id_cte, fecha, cantidad, total)

values

(@id_vta, @id_producto, @id_cte, @fecha, @cantidad, @total)

 En la primera línea estamos definiendo el nombre del procedimiento.


 En las siguientes líneas estamos declarando las variables, que normalmente su tipo de dato
es similar al campo a la que van referidas.
 Después del AS, se encuentra la sentencia INSERT para la tabla VENTAS, que va agregar
un nuevo registro con todos los campos obtenidos del procedimiento.

Para ejecutar la consulta, simplemente escribimos EXEC + el nombre del procedimiento + los
valores que queremos guardar en los campos:

Antes de enviar la fecha, debemos declararla como tipo DATE y convertirla.

declare @fecha datetime


set @fecha = convert(datetime, '29/03/2010', 103)

exec registrar_vta '011', '002', '003', @fecha, '6', '230'

7
Como resultado obtendremos un nuevo registro en la tabla ventas:

8
Caso 6: Los 5 productos más caros del Negocio

Mediante procedimientos almacenados podemos crear una lista ordenada de los productos conforme
su precio, en este caso mostraremos los 5 más caros. Simplemente ejecutamos la siguiente consulta:

Create Procedure los_5_productos_mas_caros


AS
set rowcount 5
select Productos.Nombre AS ProductosCaros,Productos.Precio_vta
From Productos
ORDER BY Productos.Precio_vta DESC
go

 En la primera línea estamos definiendo el nombre del procedimiento.


 Después del AS, delimitamos el numero de renglones que se mostrarán (5)
 Después seleccionamos el NOMBRE y PRECIO desde (FROM) la tabla Productos.
 Por último indicamos que los resultados se ordenen (ORDER BY) de manera descendente
(DESC)

Como resultado obtendremos los 5 productos más caros del negocio:

9
Comentarios
 Los procedimientos almacenados son usualmente guardados en una base de datos y están
generalmente diseñados para completar tareas en la base de datos donde se encuentren.

 Un procedimiento almacenado puede se creado para personalizar código de los


procedimientos almacenados del sistema.

 Una tarea común de administración de bases de datos es consultar la información acerca de


los usuarios y procesos que se están ejecutando en una base de datos.

 Se puedes formar infinidad de procedimientos que sean capaces de facilitar la


automatización de procesos dentro de nuestra BD

10

También podría gustarte