Versionando Procedimientos Almacenados en SQL SERVER

INTRODUCCION.-  

Muchas veces nos hemos encontrado cuando desarrollamos procedimientos almacenados la necesidad de poder crear una versión de uno previamente creado.

A la hora de versionar un procedimiento almacenado nos encontramos con diferentes problemas, como por ejemplo:

  • Cómo normalizar y/o escribir el nombre de estas versiones V1, V2, fecha y un largo etcetera, por ejemplo, spCargaCliente, spCargaClienteV1.  
  • También existen otros problemas añadidos a la hora de hacer los scripts de creación de la base de datos donde tenemos, para mantener un seguimiento de los mismos, que seleccionar uno a uno todos los procedimientos almacenados con sus diferentes versiones.

 

PEQUEÑO TRUCO.-

Vamos a establecer un ejemplo, de cómo, SQL SERVER puede ayudarnos a organizarlos y cómo puede a la hora de crear el script sólo ver un procedimiento almacenado con sus diferentes versiones.

Lo primero vamos a crear un procedimiento almacenado simple:

CREATE PROCEDURE [dbo].[spVersion]
AS
BEGIN
    SELECT 'v1'
END

Si ejecutamos el procedimiento almacenado, por ejemplo, EXEC spVersion obtenemos el valor v1.

Ahora crearemos otro procedimiento con el mismo nombre pero esta vez vamos a añadir al nombre el signo ; y un número de versión, por ejemplo, el  (Inicialmente la versión 1 ya está reservada para la primera definición del procedimiento ).

 

CREATE PROCEDURE [dbo].[spVersion];2
AS
BEGIN
    SET NOCOUNT ON;

   SELECT 'v2'
END

Si ejecutamos el procedimiento EXEC spVersion volvemos a obtener el valor ‘v1’ y si ejecutamos el procedimiento EXEC spVersion;2 obtenemos el valor ‘v2’ .

Si abrimos el SQL SERVER Management Studio y expandimos los procedimientos almacenados, vemos que sólo existe un procedimiento almacenado.

 

clip_image001

Y si accedemos a su definición veremos el siguiente resultado.

clip_image002

Lo cual nos permite ir realizando los diferentes versionados del procedimiento almacenado.

 

José Manuel Jurado Diaz.

Ingeniero de Soporte de SQL SERVER