La manera correcta de crear scripts en Sql Server para la creación de objetos, como tablas, procedimientos almacenados, funciones, restricciones, etc., es la siguiente:
**Importante** Establecer siempre la base de datos sobre la que estamos trabajando al principio del script.
**Importante** No olvidemos incluir siempre comentarios descriptivos sobre los objetos, siempre comentalos como si se le estuvieras explicando a un niño, que sean claros y concisos.
Veamos un ejemplo de objeto con la creación de una tabla.
[sql]
USE
MiBaseDeDatos
GO
/* Objeto: MiTabla */
— Eliminar, si existe
IF EXISTS (
SELECT
*
FROM
INFORMATION_SCHEMA.TABLES
WHERE
TABLE_NAME = ‘MiTabla’
)
BEGIN
DROP TABLE
MiTabla
END
GO
/*
* MiTabla
* – Tabla de prueba, almacena datos de prueba
* Podemos poner, fecha, proyecto y más información relevante
*/
CREATE TABLE
MiTabla (
MiTablaId int NOT NULL,
Descripcion varchar(30) NOT NULL,
)
GO
/**
* PK_MiTabla
* – Restricción de llave principal
*/
ALTER TABLE
MiTabla
ADD CONSTRAINT
PK_MiTabla
PRIMARY KEY (
MiTablaId
)
GO
[/sql]
Como podemos observar, la identación es muy importante para que el código sea claro y legible. A mí me gusta el formato:
[sql]
COMMANDO
argumentos
[/sql]
Con este formato puedo leer verticalmente con facilidad las intrucciones en el script. Ahora veremos un ejemplo con la creación de un procedimiento almacenado. Es muy importante documentar:
Hay otros datos importantes, como el historial de cambios, donde se especifique, por lo menos:
Al efectuar nuestros scripts de esta manera, al reproducirlos en otro servidor, no causarán conflictos si se corren dos veces seguidas por error, y si la ejecución la genera otra persona, le es muy útil para comprender que está haciendo y por que.
[sql]
/* Objeto: miProcedimientoAlmacenado */
— Eliminar, si existe
IF EXISTS (
SELECT
*
FROM
INFORMATION_SCHEMA.ROUTINES
WHERE
ROUTINE_NAME = ‘miProcedimientoAlmacenado’
AND ROUTINE_TYPE = ‘PROCEDURE’
)
BEGIN
DROP PROCEDURE
miProcedimientoAlmacenado
END
GO
/*
miProcedimientoAlmacenado:
– Selecciona los registros de miTabla a partir de @miParametro
Parámetros:
@miParametros INT – El identificador del registro en la tabla
Ejemplo:
EXEC miProcedimientoAlmacenado 1001
Otra información relevante, como historial de modificaciones:
Luis Espino, 27 Marzo de 2016, Creación
– Creación del script como ejemplo para el blog
*/
CREATE PROCEDURE
miProcedimientoAlmacenado (
@miParametro INT
)
AS
BEGIN
— Breve descripción de la lógica:
— Seleccionamos los registros basados en los parámetros
SELECT
*
FROM
MiTabla
WHERE
MiTablaId = @miParametro
END
GO
— Le damos permisos al público de ejecutar el procedimiento almacenado
GRANT EXECUTE ON
miProcedimientoAlmacenado
TO
PUBLIC
GO
[/sql]
Es realmente sencillo, lo importante es mantener un orden, una estructura en nuestro código.
admin
March 28, 2016
SQL SERVER
No Comment