Base de datos · Queries · SQL Server

Creación de Stored Procedures con SQL Server

En las bases de datos es muy común el uso de instrucciones y de funciones que combinados nos ayudan a obtener resultados dentro de la manipulación de datos, de esta manera nosotros podemos realizar la ejecución de instrucciones bien coordinadas y lineales que entre si dependiendo la necesidad manipulan y/o muestran información con el fin de lograr un objetivo dentro del sistema.

Uso de Variables en SQL Server

Antes de entrar al tema por completo, es necesario realizar una pequeña introducción al uso de las variables dentro de SQL server ya que con estas podremos hacer pruebas y validaciones antes de la creación del stored procedure.

Declaración de variables

La declaración de las variables es muy sencilla ya que solamente se debe definir el nombre de la variable y el tipo de la variable, es importante que se agregue una @ antes de la variable para que SQL server lo detecte como variable, por ejemplo:

DECLARE @Variable_Entero int;
DECLARE @Variable_Caracter varchar(50);
DECLARE @Variable_Decimal float;

Posteriormente podemos asignarle el valor a las variables haciendo uso de la sentencia SET, por ejemplo:

SET @Variable_Entero = 1
SET @Variable_Caracter = 'Caracter'
SET @Variable_Decimal = 1.5

De esta manera estamos asignando valores a las variables previamente definidas, este ejemplo nos sirve para asignarle los valores de una manera directa sin embargo los podemos definir de manera indirecta que lo mostraré a continuación en la creación del stored procedure.

Obtener los valores de las variables

Para obtener los valores que almacenamos en las variables solo es necesario hacer un select a la variable haciendo uso de un alias para identificarla ya que al momento de hacerle el select sql server no le asigna nombre a la columna por ejemplo:

vriable_sql

En esta imagen podemos observar que podemos obtener el valor de la variable solo haciendo el select directamente a la variable, pero de esa manera nos obtiene el dato como (No column name) en este caso lo que podemos hacer es agregarle un alias para que de esa manera la podamos identificar con el nombre de columna que se desee.

 

variable_alias

En esta imagen podemos observar que al momento de agregar el parámetro «as Variable1» podemos obtener el valor de la variable con el nombre de columna Variable1 de esta manera podemos obtener el resultado con un alias que nos ayuda para identificar el valor de la variable.

 

Creación del stored procedure

Una vez que hemos realizado todas las pruebas necesarias, podemos proceder a crear el stored procedure con los datos de las pruebas realizadas, para esto pondré un ejemplo de un stored en el cual agregare comentarios del mismo que ayudarán a comprender la creación del mismo, sé que puede ser un poco difícil de entender al principio pero la práctica es lo lograra que se perfeccione la creación de Store Procedures haciendo más fácil la comprensión y creación de los mismos, las definiciones de cada una de las instrucciones están comentadas por medio de: /******EJEMPLO******/ dentro de los cuales se encuentra la explicación de los parámetros y/o instrucciones.

Escenario: Se requiere un Stored Procedure que pueda insertar datos dentro de la tabla de clientes.

Resultado:

USE [BASE_DE_DATOS1] /******La instrucción USE nos ayuda de definir en el store procedures cuál es la base de datos dentro de la cual estaremos haciendo la manipulación de los datos******/
GO /****** El go es la instrucción de inicio de SQL server con la cual estamos indicando que a partir de esta sentencia vamos a ejecutar queries ******/
CREATE PROCEDURE [dbo].[ALTA_CLIENTE] @Nombre_cliente varchar(50), @Apellido_cliente1 varchar (50) , @Apellido_cliente2 varchar (50) , @Telefono_cliente varchar(50) , @Correo_Cliente Varchar(50) , @ID_tipoc int , @RFC_Cliente varchar(50) , @Activo_Cliente int , @ID_Direccion int , @ID_Usuario_alta int , @ID_Usuario_Modifica int

/******La sentencia CREATE PROCEDURE es la que vamos a utilizar para indicarle a SQL server que vamos a crear un SP, lo que estoy definiendo como: [dbo].[ALTA_CLIENTE]  es el esquema de la base de datos y el nombre del stored procedure, es decir que el stored procedure que estamos creando se llama ALTA_CLIENTE, posteriormente de la definición del nombre se agregan todos aquellos argumentos que vamos a necesitar para la manipulación de la información dentro del mismo

******/

AS
BEGIN

/******En estas dos sentencias «AS», «BEGIN» Le estamos indicando a sql server que hemos terminado de nombrar al stored procedures y que a partir de aquí empezaremos a realizar el/los queries para la manipulación de la información de la base de datos

******/

–Stored Procedure para Crear Clientes–
— Creado por: DMT–
–Fecha: 10-01-2018–

/******Como buenas prácticas siempre se debe comentar dentro de los Stored procedures por lo menos lo siguiente, Objetivo y/o función del mismo, nombre del creador y fecha de creación

******/

INSERT INTO [dbo].[CLIENTES]
           ([Nombre_Cliente]
           ,[Apellido1_Cliente]
           ,[Apellido2_Cliente]
           ,[Telefono_Cliente]
           ,[Correo_Cliente]
           ,[ID_Tipoc]
           ,[RFC_Cliente]
           ,[Activo_Cliente]
           ,[Fecha_Alta]
           ,[ID_Direccion]
           ,[ID_Usuario_alta]
           ,[ID_Usuario_modifica]
           ,[Fecha_modificacion])
     VALUES
           (UPPER(@Nombre_cliente)
           ,UPPER(@Apellido_cliente1)
           ,UPPER(@Apellido_cliente2)
           ,@Telefono_cliente
           ,@Correo_Cliente
           ,@ID_tipoc
           ,UPPER(@RFC_Cliente)
           ,@Activo_Cliente
           ,GETDATE()
           ,@ID_Direccion
           ,@ID_Usuario_alta
           ,@ID_Usuario_Modifica
           ,GETDATE())

/******Como se puede observar en la parte de «VALUES» estoy poniendo el valor que eta tomando el stored procedure de las variables que definimos previamente, estas deben de llamarse de la misma manera para que SQL server la identifique y pueda tomar los valores de las variables

******/

SELECT ‘CLIENTE CREADO CORRECTAMENTE’ AS Resultado;

/******Al final del insert, agregue un select con un enunciado para mandar al usuario el resultado de la ejecución, en donde solo está mandando que el cliente se creó correctamente en la base de datos

******/

END
/****** En esta sentencia le estamos indicando a SQL server que hemos finalizado con el Stored procedure******/

Como lo comenté anteriormente puede ser que al principio sea un poco difícil el empezar a crear los Stored Procedures, por tal motivo si existe alguna duda o comentario no dudes en contactarme por este medio.

Nota: La información presentada en este blog es solo para uso didáctico, ni el autor ni  la página se hacen responsables por el uso indebido de la información presentada. 

2 comentarios sobre “Creación de Stored Procedures con SQL Server

Deja un comentario