PROCEDIMIENTOS ALMACENADOS I
Enviado por diegoferph • 23 de Abril de 2015 • 795 Palabras (4 Páginas) • 568 Visitas
SQL SERVER
TEMA: PROCEDIMIENTOS ALMACENADOS
En esta oportunidad se utilizará, igualmente, la base de datos Northwind, que es una base de datos de ejemplo la cual se puede descargar desde Internet y con ella realizar los siguientes ejercicios:
PROCEDIMIENTOS ALMACENADOS
1. Todos los productos que inicien con un carácter (o varios) en especial
CREATE PROCEDURE usp_Producs_x_Name
@ProductName varchar(50)
AS
SELECT * FROM Products
WHERE Productname LIKE @ProductName+'%'
GO
Se ejecuta el procedimiento almacenado y luego se ejecuta
---Probar
execute usp_Producs_x_Name 'A'
2. Seleccionar el nombre del producto y su precio localizado por su campo código (ProductID). Esyte procedimiento utiliza 3 parámetros: 1 tipo INPUT (ProductID) y dos de salida OUTPUT (ProductName y UnitPrice). Dentro del procedimiento, los campos del registro seleccionado son guardados en los parámetros de salida y luego, fuera del procedimiento, se los transfieren a variables de memoria las que se visualizan con SELECT dándoles un ALIAS para visualización.
CREATE PROCEDURE usp_Producs_Traer_Nombre_Precio
@ProductID int,
@ProductName varchar(50) output,
@UnitPrice Money output
AS
SELECT @ProductName = ProductName,
@UnitPrice = UnitPrice
FROM Products
WHERE ProductID = @ProductID
GO
Luego de ejecutar el procedimiento anterior se procede a ejecutarlo.
---Probar
declare @Nombre varchar(50), @Precio Money
Execute usp_Producs_Traer_Nombre_Precio
10, @Nombre OUTPUT, @Precio OUTPUT
SELECT @Nombre AS Nombre, @Precio AS Precio
3. Procedimiento almacenado que cuente los productos que empiezan con un determinado character ( o caracteres)
CREATE PROCEDURE usp_Product_cantidad
@ProductName varchar(50)
AS
DECLARE @Cantidad int
SELECT @Cantidad = COUNT(*)
FROM Products
WHERE productName LIKE @ProductName+'%'
RETURN @Cantidad
GO
---Probar
DECLARE @R int
EXECUTE @R = usp_Product_cantidad 'A'
SELECT @R AS Cantidad
1. Realizar procedimientos almacenados similares pero que en lugar de seleccionar por campo nombre del producto (ProductName) se realice de acuerdo al código de la categoría (CategoryID).
Otros ejemplos:
Create procedure usp_Products_Todos
AS
SELECT *
FROM Products
GO
--Probar
usp_Products_Todos
exec usp_Products_Todos
execute usp_Products_Todos
--Ejemplo 2
--Parámetro de salida
CREATE PROCEDURE usp_Producs_PrecioMayor
@Precio money OUTPUT
AS
SELECT @precio = MAX(unitPrice) FROM Products
GO
--Probar
DECLARE @p money
execute usp_Producs_PrecioMayor @p OUTPUT
SELECT @p
-----Nota
--ALTER PROCEDURE para modificar el procedimiento
--Ejemplo 3
--Procedimiento con valor de re3torno
CREATE PROCEDURE usp_Products_cantidad
AS
DECLARE @cantidad int
SELECT @cantidad = COUNT(*) FROM Products
RETURN @cantidad
GO
--Probar
DECLARE @r int
...