Describe e comments no SQL Server

Describe e Comments no SQL Server

 

Um dos comandos bastante utilizados no Oracle para verificar estrutura de tabelas e tipos de campos é o comando DESC abreviação de describe, descrever.

Este comando descreve a estrutura de tabelas com suas colunas e tipo de dados.

O SQL Server possui DESC para “descrever” uma tabela?

Na realidade não, o SQL Server trabalha com estes comandos de uma forma um pouco diferente.

O Oracle possui comandos, que são nomes reservados para determinadas funções.

O SQL Server trabalha com system stored procedures, procedimentos armazenados do sistema, estes são responsáveis por armazenar blocos T-SQL que buscam informações.

Um destes procedimentos o qual usamos para esta mesma finalidade é o sp_columns este procedimento resulta em uma busca de todas as informações sobre os campos de uma determinada tabela. Como no exemplo:

 

use [AdventureWorks]

GO

sp_columns AWBuildVersion

  

AWBuildVersion SystemInformationID -6 tinyint identity 3 1 0 10 0 NULL NULL -6 NULL NULL 1 NO 48
AWBuildVersion Database Version -9 nvarchar 25 50 NULL NULL 0 NULL NULL -9 NULL 50 2 NO 39
AWBuildVersion VersionDate 11 datetime 23 16 3 NULL 0 NULL NULL 9 3 NULL 3 NO 61
AWBuildVersion ModifiedDate 11 datetime 23 16 3 NULL 0 NULL (getdate()) 9 3 NULL 4 NO 61

Além disto, é uma boa prática comentarmos em nosso banco de dados qual a serventia de cada campo, tabela, enfim, é sempre extremamente importante qualquer tipo de documentação.

Banco de dados também possui recursos para deixarmos tudo bem documentado.

O Oracle possui:

COMMENT ON TABLE TABELA IS ‘Descrição da tabela’

COMMENT ON COLUMN TABELA.CAMPO IS ‘Descrição sobre utilização do campo’

Pois bem, o SQL Server possui uma forma diferenciada de trabalhar com estas “documentações”.

O SQL Server possui uma lista de propriedades estendidas, extend property. Nesta lista é possível dar nome a propriedade desejada e incluir informações sobre ela.

Por exemplo, criar duas ou mais propriedades estendidas, uma identificando para que serve o campo e outra explicando a representação dos valores.

A nomenclatura padrão do SQL Server para propriedade é MS_Description outras mais ficam a customização de cada DBA.

Campo Sexo:

Descrição: Campo que identifica sexo do cliente.

Valores: M representa Masculino e F representa Feminino.

Então vamos para prática:

Comentário de Tabela

EXEC sys.sp_addextendedproperty @name=N’MS_Description’, @value=N’Current version number of the AdventureWorks sample database. ‘ , @level0type=N’SCHEMA’,@level0name=N’dbo’, @level1type=N’TABLE’,@level1name=N’AWBuildVersion’

GO

Comentário de coluna

EXEC sys.sp_addextendedproperty @name=N’MS_Description’, @value=N’Date and time the record was last updated.’ , @level0type=N’SCHEMA’,@level0name=N’dbo’, @level1type=N’TABLE’,@level1name=N’AWBuildVersion’, @level2type=N’COLUMN’,@level2name=N’ModifiedDate’

GO

Estas propriedades podem ser acessadas através do SQL Server Management Studio visualizando as propriedades do campo ou tabela que deseja consultar ou uma consulta no banco de dados que retorna estes dados:

Consulta descrição da tabela
SELECT objtype, objname, value
FROM fn_listextendedproperty
(‘MS_Description’, ‘schema’, ‘dbo’, ‘table’, default, NULL, NULL)
where objname = ‘AWBuildVersion’

TABLE AWBuildVersion Current version number of the AdventureWorks sample database. 

Consulta descrição das colunas

SELECT objtype, objname, value

FROM fn_listextendedproperty

(‘MS_Description’, ‘schema’, ‘dbo’, ‘table’, ‘AWBuildVersion’, ‘column’, default)

COLUMN SystemInformationID Primary key for AWBuildVersion records.
COLUMN Database Version Version number of the database in 9.yy.mm.dd.00 format.
COLUMN VersionDate Date and time the record was last updated.
COLUMN ModifiedDate Date and time the record was last updated.

  

Para concluirmos caso necessite maiores informações sobre uma determinada tabela, pode ser utilizado uma SP que é bastante utilizada no SQL Server sp_help basta utilizar este comando passando a tabela que seja visualizar informações, como segue na imagem:

 

 

Acredito que estas opções contemplem a maior parte das necessidades sobre consulta de informações de uma tabela.

Qualquer dúvida ou maiores esclarecimentos podem postar como Comentários do post.

Obrigado e até a próxima.

Anúncios

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s