Procedimientos almacenados en SQL Server

SQL Server permite la creación de procedimientos almacenados con mucha facilidad desde una consulta en el Management Studio.

Los procedimientos almacenados o SP son instrucciones que se almacenan en la base de datos para ser ejecutadas por otras consultas.

Las características importantes de un procedimiento almacenado son.

  • Recibe parámetros de entrada.
  • Realiza una o varias operaciones para generar resultados.
  • Retorna un resultado de un valor o en tabla (opcional).

Ventajas de los procedimientos almacenados en SQL Server

Algunas de las ventajas que tienen los procedimientos son visibles al utilizarlos como son.

  • Reutilización de código.
  • Reducción del tráfico entre el cliente y el servidor (mejora la velocidad de consultas).
  • Seguridad
  • Mantenimiento rápido.
  • Mejor rendimiento de la base de datos.

Podría interesarte Consultar a SQL Server desde ASP.Net C#  

Crear un procedimiento almacenado

Utilizaremos SQL Server Management Studio para realizar un procedimiento almacenado sencillo que devuelva una consulta.

Accede a SQL Server, selecciona una base de datos; despliega el contenido de la base de datos y ubica la carpeta de Programación.

Al desplegar el contenido de la carpeta encontramos la de los procedimientos almacenados.

Ubicacion de procedimientos almacenados en sql server

Damos clic derecho sobre la carpeta Procedimientos almacenados, en nuevo y seleccionamos Procedimiento almacenado.

Crear procedimientos almacenados sql server

Inicialmente se crea la estructura básica de un procedimiento, como la siguiente.

Estructura de procedimientos almacenados en sql server

Toma en cuenta los datos de los puntos marcados.

  • Información básica del SP.
  • Nombre del SP (recomendable que tenga terminación en SP).
  • Ubicación de parámetros de entrada.
  • Consultas y operaciones; no se requiere de return para devolver resultados, mediante un select se realiza el retorno.

Modifiquemos el procedimiento para realizar una consulta, de acuerdo con los puntos anteriores mi SP quedaría como sigue.

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		Gerardo Alvarez
-- Create date: 15-07-2019
-- Description:	Obtener los productos por categoria.
-- =============================================
CREATE PROCEDURE dbo.ConsultaProductos_SP
	@Categoria INT
AS
BEGIN
	SET NOCOUNT ON;

	SELECT * FROM Producto WHERE IdCategoria = @Categoria;
END
GO

Como pueden ver los cambios que realice fue en los puntos señalados, información del SP, nombre y consultas.

En el SP realizo una consulta a una tabla de productos que está clasificado en categorías.

Un procedimiento no se ejecuta como una consulta básica de SQL Server, primero hay que guardarlo en la base de datos.

Ya que tenemos el SP terminado lo guardamos utilizando el botón de Ejecutar.

Ejecucion de procedimientos almacenados sql server

Al ejecutarlo no verán el resultado de una consulta, más bien un mensaje de ejecución correcta.

Commands completed successfully.

Confirmemos que se creó el SP, veamos la ubicación de los procedimientos.

Procedimientos almacenados en SQL Server

Hasta este punto ya tenemos un procedimiento creado.

Ejecutar procedimientos almacenados

Veamos cómo podemos utilizar los procedimientos almacenados en la base de datos desde otras consultas.

Abre una nueva consulta y escribe el siguiente código.

EXEC dbo.ConsultaProductos_SP
	@Categoria = 2;--Parametros de entrada

Mediante el comando EXEC se realiza la ejecución del procedimiento nombrado “ConsultaProductos_SP”.

Debajo colocamos todos los parámetros de entrada que necesita el SP, si hay más de uno se separan por una coma y se finaliza con punto y coma.

Al ejecutar la consulta se realiza el llamado al procedimiento y este nos devuelve un resultado; en mi caso obtengo lo siguiente.

Resultado de procedimientos almacenados sql server

Podría interesarte Funciones escalares en SQL Server  

Observaciones

Los procedimientos almacenados no siempre se utilizan para generar resultados como las funciones. Mas bien se utilizan para realizar consultas básicas como select, insert, update o delete, que pueden no devolver resultados.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *