Scripts de creación de objetos en Sql Server

admin

March 28, 2016

SQL SERVER

No Comment

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:

  1. Primero, verificar si existe el objeto existe.
    • Si existe, eliminarlo.
  2. Posteriormente, crear el objeto.
  3. Posteriormente, repetir para los objetos que dependen del que acabamos de crear.

**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.

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

Como podemos observar, la identación es muy importante para que el código sea claro y legible. A mí me gusta el formato:

COMMANDO
    argumentos

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:

  1. La funcionalidad del procedimiento
  2. Los parámetros que utiliza, su tipo y descripción
  3. Un ejemplo de como se utiliza

Hay otros datos importantes, como el historial de cambios, donde se especifique, por lo menos:

  1. Quien realizó el cambio
  2. Por que
  3. Cuando

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.

/* 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

Es realmente sencillo, lo importante es mantener un orden, una estructura en nuestro código.

Related Posts

Conexión a Sql Server con Php 5.6 linux CentOS 6

admin

March 28, 2016

PHP, SQL SERVER

No Comment

Para conectarse a Sql Server desde linux utilizamos este comando para instalar el driver: $ sudo yum install -y php-mssql Por ejemplo, para php5.6: $ sudo yum install -y php56w-mssql Esta instrucción instala freetds, una colección de librerias para conectarnos con Sql Server desde linux. Con esta librería no solo podemos conectarnos desde Php, sino […]

Read More

Exportar de Sql Server a Excel

admin

September 3, 2013

SQL SERVER

No Comment

La siguiente presentación es un pequeño y básico tutorial sobre el proceso de exportación, de Sql Server a Excel: Exportar información de Sql Server a Excel from Luis Martín Espino Rivera Related

Read More

Leave a Reply

Your email address will not be published. Required fields are marked *

Busca en el blog aqui

Herramientas Útiles

Suscribete al blog

Recibe en tu correo las últimas publicaciones

Publicidad

Sígueme en Twitter