Procedimientos Almacenados con parámetros de salida

Procedimientos Almacenados con parámetros de salida

Los procedimientos almacenados son bloques de código reutilizable guardados en la base de datos que tienen un propósito. (Ver Procedimientos Almacenados)

Existen procedimientos almacenados que no tienen parámetros, es decir, no necesitan de ningún valor para que se ejecuten, las tareas que realizan estos generalmente son sencillas.

Parámetros

  • Los parámetros se usan para intercambiar datos entre las aplicaciones y los procedimientos almacenados o la herramienta que ejecutó el procedimiento almacenado.
  • Los parámetros de entrada permiten pasar un valor de datos al procedimiento almacenado.
  • Los parámetros de salida permiten al procedimiento almacenado devolver un valor
  • Los procedimientos almacenados devuelven un código de retorno de tipo entero.
  • El valor de retorno por defecto es CERO si no se establece explícitamente un valor diferente



Ejemplos

Los siguientes ejemplos muestran como usar los parámetros de salida en procedimientos almacenados.

Usando Northwind
use Northwind
go

Ejercicio 1
Procedimiento almacenado que reporta el número de productos de una determinada categoría

Create procedure spCategoriasCantidadProductos
(@CategoriaCodigo int, @CantidadProductos Numeric(9,2) output)
As
Select * from Products where CategoryID = @CategoriaCodigo
Set @CantidadProductos = @@ROWCOUNT
go

Para ejecutar el procedimiento debemos crear antes una variable que permita capturar el valor devuelto por el parámetro de salida del procedimiento. Tomaremos como ejemplo la categoría 3.

Declare @Cantidad int
Execute spCategoriasCantidadProductos 3, @Cantidad output
select @Cantidad

Ejercicio 2
Procedimiento almacenado que reporta la cantidad de productos que es necesario comprar con urgencia. (Productos cuyas Unidades en Stock es menor a las unidades en Orden)

Create procedure spCantidadProductosComprarUrgente
(@CantidadProductos Numeric(9,2) output)
As
Select * from Products where UnitsOnOrder > UnitsInStock
Set @CantidadProductos = @@ROWCOUNT
go

Para ejecutar el procedimiento debemos crear antes una variable que permita capturar el
valor devuelto por el parámetro de salida del procedimiento.

Declare @CantidadPorComprar int
Execute spCantidadProductosComprarUrgente @CantidadPorComprar output
select @CantidadPorComprar