Em desenvolvimento de sistemas, documentar e sempre bom, nem sempre prazeroso mais necessário.

Segue abaixo um breve exemplo para quem pretende documentar através de propriedades presentes no MS-SQLServer tanto referente a tabela quanto a campos específicos.

USE BancoDeDados
go

— Apaga a tabela se já existir no banco de dados com o mesmo nome

IF EXISTS ( SELECT 1 FROM sys.objects o WHERE o.type = ‘U’ AND o.name = ‘Auditoria’ )
BEGIN
drop TABLE Auditoria
END

— Cria a tabela no banco de dados

CREATE TABLE Auditoria(

Id INT IDENTITY(1,1) PRIMARY KEY,
IdTransacao VARCHAR(40) UNIQUE,
Descricao VARCHAR(5000),
IdUsuario VARCHAR(255),
DataOperacao DATETIME
);
GO

— Adiciona constraint para gravar o usuário que realizou o insert na tabela
ALTER TABLE [dbo].[Auditoria] ADD CONSTRAINT [DEF_Auditoria_IdUsuario] DEFAULT (suser_sname()) FOR [IdUsuario]
GO

— Adiciona constraint para gravar a data e hora que o insert foi realizado

ALTER TABLE [dbo].[Auditoria] ADD CONSTRAINT [DEF_Auditoria_DataOperacao] DEFAULT (getdate()) FOR [DataOperacao]
GO

— Adiciona a propriedade para documentar o motivo da existência ou criação da tabela.

EXEC sys.sp_addextendedproperty
‘MS_DescriptionTable’,
‘Tabela que será utilizada para armazenar as informações auditoria no sistema.’,
‘user’,
dbo,
‘table’,
Auditoria;
GO

— Adiciona a propriedade para documentar o motivo da existência ou criação do campo.

EXEC sp_addextendedproperty
‘MS_Description’,
‘Este campo identifica a transação no sistema.’,
‘user’,
dbo,
‘table’,
Auditoria,
‘column’,
IdTransacao
GO

— Adiciona a propriedade para documentar o motivo da existência ou criação do campo.

EXEC sp_addextendedproperty
‘MS_Description’,
‘Este campo contém a mensagem para identificar o evento de auditoria.’,
‘user’,
dbo,
‘table’,
Auditoria,
‘column’,
Descricao
GO

Boa implementação a todos.