Como listar tabelas e campos de um determinado banco de dados

Antes de mais nada, vale lembrar que esta dica se refere ao banco de dados Microsoft SQL Server, podendo na maior parte dos casos ser adaptado para outros bancos de dados, utilizando as respectivas tabelas de sistemas.

Pra que listar tabelas e campos?

Em um determinado momento, pode ser necessário documentar a especificação de entidades e atributos de um banco criado por terceiros, onde não foi fornecida nenhuma documentação com a especificação (que deveria ter sido feita ANTES da criação física).

 

Volto com foco na sugestão.

Você pode montar uma query bastante simples para listar o conteúdo de um banco de dados, utilizando as tabelas de sistema: sysobjects, syscolumns e systypes. Nesta query, é feito um relacionamento simples entre estas tabelas e atende na maior parte dos casos. O código desta query é bastante fácil de encontrar pela web.

Mas, aqui vou apresentar uma forma diferente, usando o objeto information_schema.

use <banco de dados>
go
select a.TABLE_CATALOG as Banco,
a.TABLE_SCHEMA as [Schema],
a.TABLE_NAME as Tabela,
b.TABLE_TYPE as Tipo,
a.COLUMN_NAME as [Coluna],
a.IS_NULLABLE as [Nulo],
a.DATA_TYPE as [DataType],
coalesce(
cast(a.NUMERIC_PRECISION AS varchar(5)) + ',' + cast(a.NUMERIC_SCALE as varchar(5))
, cast(a.character_maximum_length as varchar(5))) as Tamanho
from information_schema.columns as a inner join INFORMATION_SCHEMA.TABLES as b
on a.TABLE_NAME = b.TABLE_NAME
and a.TABLE_SCHEMA = b.TABLE_SCHEMA
and a.TABLE_CATALOG = b.TABLE_CATALOG
order by a.TABLE_NAME, a.ORDINAL_POSITION

Simples e rápido.

 

Até a próxima!

 

 

One thought on “Como listar tabelas e campos de um determinado banco de dados

Deixe uma resposta