SQL Server

Crear Stored Procedures en SQL Server paso a paso (guía completa con ejemplos reales)

Publicado por J. Panduro hace 4 meses

Crear Stored Procedures en SQL Server paso a paso (guía completa con ejemplos reales)

Los Stored Procedures (SP) son una de las herramientas más utilizadas en sistemas empresariales desarrollados con SQL Server.


Se usan para:


  1. Automatizar consultas
  2. Centralizar lógica
  3. Mejorar seguridad
  4. Optimizar rendimiento
  5. Crear APIs internas para sistemas


En este artículo aprenderás:

  1. Qué es un Stored Procedure
  2. Cómo crear uno
  3. Cómo ejecutarlo
  4. Parámetros
  5. Buenas prácticas
  6. Ejercicios reales


¿Qué es un Stored Procedure?


Un Stored Procedure (Procedimiento Almacenado) es un conjunto de instrucciones SQL que se almacena de forma permanente dentro de la base de datos y puede ejecutarse cuando sea necesario. Su propósito es encapsular lógica de negocio, consultas y operaciones complejas en un único bloque reutilizable, facilitando el mantenimiento y la organización del código.


Funciona de manera similar a una función o método en programación, ya que permite agrupar varias instrucciones relacionadas bajo un mismo nombre para ejecutarlas posteriormente. En lugar de escribir las mismas consultas una y otra vez desde una aplicación, es posible crear un Stored Procedure y reutilizarlo cada vez que se necesite.


Ventajas de usar Stored Procedures


  1. Reutilización de código
  2. Mayor seguridad
  3. Mejor organización
  4. Menos código repetido
  5. Mejor mantenimiento


Ejemplo real empresarial

En lugar de escribir:


INSERT INTO Clientes (...)


cada vez desde el sistema…


Creamos un procedimiento reutilizable:


EXEC sp_InsertarCliente ...


Dataset completo (copiar y ejecutar)


-- =========================================
-- ELIMINAR TABLA SI EXISTE
-- =========================================
IF OBJECT_ID('Clientes', 'U') IS NOT NULL
DROP TABLE Clientes;

-- =========================================
-- CREAR TABLA
-- =========================================
CREATE TABLE Clientes (
IdCliente INT IDENTITY(1,1) PRIMARY KEY,
Nombre VARCHAR(100) NOT NULL,
Email VARCHAR(100) NOT NULL,
Telefono VARCHAR(20) NULL,

FechaCreacion DATETIME DEFAULT GETDATE(),
CreatedBy VARCHAR(50) NOT NULL
);


Crear tu primer Stored Procedure


Ahora que conocemos qué es un Stored Procedure y las ventajas que ofrece, es momento de crear nuestro primer procedimiento almacenado en SQL Server. Los Stored Procedures permiten encapsular consultas y operaciones dentro de la base de datos, facilitando la reutilización del código y mejorando la organización de los procesos.


En la práctica, los procedimientos almacenados son utilizados para centralizar la lógica de acceso a datos, evitando repetir consultas en diferentes partes de una aplicación. Esto no solo simplifica el desarrollo, sino que también facilita el mantenimiento y la optimización de los sistemas.

En el siguiente ejemplo crearemos un Stored Procedure básico para comprender su estructura y funcionamiento.


CREATE PROCEDURE sp_ListarClientes
AS
BEGIN

SELECT *
FROM Clientes;

END;




Cómo ejecutar un Stored Procedure


EXEC sp_ListarClientes;


o también:


EXECUTE sp_ListarClientes;


Stored Procedure para INSERT


Ahora algo más real


CREATE PROCEDURE sp_InsertarCliente
(
@Nombre VARCHAR(100),
@Email VARCHAR(100),
@Telefono VARCHAR(20),
@CreatedBy VARCHAR(50)
)
AS
BEGIN

INSERT INTO Clientes
(
Nombre,
Email,
Telefono,
CreatedBy
)
VALUES
(
@Nombre,
@Email,
@Telefono,
@CreatedBy
);

END;


Ejecutar el SP


EXEC sp_InsertarCliente
@Nombre = 'Juan Pérez',
@Email = 'juan@email.com',
@Telefono = '999888777',
@CreatedBy = 'admin';


Verificar datos

SELECT *
FROM Clientes;



¿Por qué usar parámetros?


Los parámetros son una de las características más importantes de los Stored Procedures, ya que permiten enviar información al procedimiento en el momento de su ejecución. Gracias a ellos, un mismo procedimiento puede utilizarse múltiples veces con diferentes valores, evitando la necesidad de crear consultas o procedimientos distintos para cada situación.


Al utilizar parámetros, los procedimientos almacenados se vuelven más flexibles y reutilizables. Por ejemplo, en lugar de crear una consulta específica para buscar cada cliente, se puede crear un único Stored Procedure que reciba el identificador del cliente como parámetro y devuelva la información correspondiente. De esta manera, la lógica se mantiene centralizada y resulta más fácil de mantener.


SP para UPDATE


CREATE PROCEDURE sp_ActualizarCliente
(
@IdCliente INT,
@Telefono VARCHAR(20)
)
AS
BEGIN

UPDATE Clientes
SET Telefono = @Telefono
WHERE IdCliente = @IdCliente;

END;


Ejecutar UPDATE


EXEC sp_ActualizarCliente
@IdCliente = 1,
@Telefono = '987654321';


Ver Stored Procedures existentes


SELECT *
FROM sys.procedures;


Eliminar un Stored Procedure


DROP PROCEDURE sp_ListarClientes;


Validar si existe un SP


IF OBJECT_ID('sp_ListarClientes', 'P') IS NOT NULL
DROP PROCEDURE sp_ListarClientes;


¿Qué significa la "P"?


👉 ''P" significa:


Procedure


SQL Server valida objetos tipo procedimiento almacenado.


Ejercicios tipo entrevista


Nivel básico

Crear un SP que liste clientes.


CREATE PROCEDURE sp_ListarClientes
AS
BEGIN

SELECT *
FROM Clientes;

END;



Nivel intermedio

Crear un SP para insertar productos.


CREATE PROCEDURE sp_InsertarProducto
(
@Nombre VARCHAR(100),
@Precio DECIMAL(10,2)
)
AS
BEGIN

INSERT INTO Productos
(
Nombre,
Precio
)
VALUES
(
@Nombre,
@Precio
);

END;


Nivel entrevista real

Crear un SP que actualice un cliente solo si existe.


CREATE PROCEDURE sp_ActualizarTelefono
(
@IdCliente INT,
@Telefono VARCHAR(20)
)
AS
BEGIN

IF EXISTS (
SELECT 1
FROM Clientes
WHERE IdCliente = @IdCliente
)
BEGIN

UPDATE Clientes
SET Telefono = @Telefono
WHERE IdCliente = @IdCliente;

END;

END;


Conclusión


Los Stored Procedures (SPs) son una herramienta fundamental dentro de SQL Server y forman parte de las mejores prácticas utilizadas en el desarrollo de aplicaciones empresariales. Gracias a su capacidad para encapsular lógica de negocio, reutilizar código y optimizar consultas, permiten construir soluciones más organizadas, seguras y fáciles de mantener.


A lo largo de este artículo hemos visto cómo los procedimientos almacenados pueden recibir parámetros, devolver valores, manejar errores y ejecutar operaciones complejas directamente desde la base de datos. Estas características los convierten en una pieza clave para mejorar el rendimiento y centralizar procesos críticos dentro de una aplicación.


Además, al mantener la lógica cerca de los datos, los Stored Procedures ayudan a reducir la cantidad de código necesario en las aplicaciones, facilitan el mantenimiento de los sistemas y permiten implementar controles de seguridad más robustos.


  1. Por estas razones, los Stored Procedures son ampliamente utilizados en entornos profesionales y forman parte de la arquitectura de numerosas soluciones empresariales, incluyendo:

Sobre el autor

J. Panduro es desarrollador de software y creador de HPanduDigital. Comparte contenido sobre Desarrollo Web, inteligencia artificial, y transformación digital, basado en experiencias reales y proyectos prácticos.

Buscar artículos

Escribe al menos 2 caracteres para buscar.