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.
Y si accedemos a su definición veremos el siguiente resultado.
Lo cual nos permite ir realizando los diferentes versionados del procedimiento almacenado.
José Manuel Jurado Diaz.
Ingeniero de Soporte de SQL SERVER