Documentar Vistas, Stores y Funciones en SQL Server


Posteo un método para documentar Vistas, Stores y Funciones en el propio SQL Server.

Los pasos a realizar serán los siguientes:

  • Al definir uno de estos objetos insertamos un comentario con la descripción con el tag descripcion:  En nuestro caso únicamente documentamos indicando una descripción, podriamos añadir más datos como el autor, fecha…Por ejemplo:
    -- Descripcion: Elimina por Nombre de Cliente
    CREATE PROCEDURE [dbo].[DeleteByName]
    @Name nvarchar(255)
    AS
    BEGIN
    SET NOCOUNT ON;
    DELETE FROM CLIENT WHERE NAME = @Name
    END
    GO
    

    NOTA: En las Vistas los comentarios tienen que al final la CREATE/ALTER antes del GO.

    CREATE VIEW [dbo].[VW_SELLER]
    AS
    SELECT  *
    FROM CLIENT
    INNER JOIN SELLER ON CLIENT.ID = SELLER.ID
    -- Descripcion: Retorna la información expandidas de los vendedores
    GO
    
  • Ejecutamos el siguiente script que obtiene la información de las documentación insertada en los objetos.  El funcionamiento es el siguiente:
  1. Recorre los objetos (vistas, stores o funciones) de la base de datos
  2. Para cada objeto obtiene el código fuente de los objetos con  sp_helptext
  3. Se parte el código fuente para obtener el tag descripcion:  que previamente hemos insertado.
  4. Si tenemos la documentación (en nuestro caso la descripción) mostramos el nombre del objeto y su descripción.
-- ************************************************************************
-- * Obtiene la descripción de las tablas, procedures, vistas y funciones *
-- ************************************************************************
SET NOCOUNT ON

DECLARE @DESCRIPCION VARCHAR(4000)
CREATE TABLE #helptext
(
[Text] VARCHAR(4000) NULL
);

DECLARE ShowComentsAll CURSOR
FOR
SELECT sysusers.[name] + '.' + sysobjects.[name] AS FullName
FROM sysobjects
INNER JOIN sysusers ON sysobjects.uid = sysusers.uid
WHERE xtype in ('P', 'V', 'FN')
ORDER BY xtype, FullName

OPEN ShowComentsAll
DECLARE @name VARCHAR(250)

FETCH NEXT FROM ShowComentsAll INTO @name
WHILE @@fetch_status = 0
BEGIN

DELETE #helptext
SET @DESCRIPCION = NULL

INSERT INTO #helptext
exec sp_helptext @name

SELECT @DESCRIPCION = [text]
FROM #helptext
WHERE [text] LIKE '-- Descripcion:%'
IF (@DESCRIPCION IS NOT NULL)
BEGIN
PRINT @NAME
PRINT @DESCRIPCION
END

FETCH NEXT FROM ShowComentsAll INTO @name
END
CLOSE ShowComentsAll
DEALLOCATE ShowComentsAll
DROP TABLE #helptext

El resultado que se obtiene es el siguiente :

dbo.DeleteByName
-- Descripcion: Elimina por Nombre de Cliente
dbo.VW_SELLER
-- Descripcion: Retorna la información expandidas de los vendedores
Anuncios
Esta entrada fue publicada en Sql Server y etiquetada , , . Guarda el enlace permanente.

3 respuestas a Documentar Vistas, Stores y Funciones en SQL Server

  1. Pingback: Documentar Vistas, Stores y Funciones en SQL Server « DbRunas – Noticias y Recursos sobre Bases de Datos

  2. Pingback: SQL Server: Opciones para documentar una BD SQL Server (I)! - Blog de Juan Carlos González en Geeks.MS

  3. Pingback: ¡SQL Server: Opciones para documentar una BD SQL Server!

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s