SQL STORED PROCEDURES: ¿Qué es un procedimiento almacenado?

Un procedimiento almacenado o STORED PROCEDURE es un código SQL preparado que puede guardar, por lo que el código puede reutilizarse una y otra vez.

Entonces, si tiene una consulta SQL que escribe una y otra vez, guárdela como un procedimiento almacenado y luego llámela para ejecutarla.

También puede pasar parámetros a un procedimiento almacenado, de modo que el procedimiento almacenado pueda actuar en función de los valores de parámetro que se pasan.


Sintaxis de procedimientos almacenados

En el siguiente script puedes ver la sintaxis para crear un procedimiento almacenado o STORED PROCEDURE.

CREATE PROCEDURE nombre_procedimiento AS sql_statement

GO;

Ejecutar un procedimiento almacenado

En el siguiente SQL puedes ver la sintaxis para ejecutar el procedimiento almacenado.

EXEC nombre_procedimiento;

Ejemplo de procedimiento almacenado

La siguiente declaración SQL crea un procedimiento almacenado llamado «Todos_Clientes» que selecciona todos los registros de la tabla «Clientes«:

CREATE PROCEDURE Todos_Clientes

AS

SELECT *
FROM Clientes

GO;

Ejecuta el procedimiento

A continuación se muestra la sintaxis para ejecutar un procedimiento almacenado

EXEC Todos_Clientes;

Procedimiento almacenado con un parámetro

La siguiente declaración SQL crea un procedimiento almacenado que selecciona a los clientes de una ciudad en particular de la tabla «Clientes»:

CREATE PROCEDURE Todos_Clientes @Ciudad nvarchar(30)

AS

SELECT *
FROM Clientes 
WHERE Ciudad = @Ciudad

GO;

Ejecute el procedimiento almacenado anterior de la siguiente manera:

EXEC Todos_Clientes Ciudad = 'Bogotá';

Procedimiento almacenado con múltiples parámetros

Configurar múltiples parámetros es muy fácil. Solo liste cada parámetro y el tipo de datos separados por una coma como se muestra a continuación. La siguiente declaración SQL crea un procedimiento almacenado que selecciona Clientes de una Ciudad en particular con un Código Postal en particular de la tabla «Clientes»:

CREATE PROCEDURE Todos_Clientes

 @Ciudad nvarchar(30), @CodigoPostal nvarchar(10)

AS

SELECT * 
FROM Clientes
WHERE Ciudad = @Ciudad 
AND CodigoPostal = @CodigoPostal

GO;

Ejemplo de ejecución del procedimiento

En el siguiente ejemplo puedes ver cómo se ejecuta un STORED PROCEDURE

EXEC Todos_Clientes Ciudad = 'Bogotá', Código_Postal = 45350;