SQL Server: Listar estrutura de uma determinada tabela 🗄️

📌 Introdução

Este artigo apresenta uma consulta SQL que permite listar a estrutura de uma tabela específica no SQL Server. Isso é útil para a criação de um Dicionário de Dados, auditorias ou para compreensão da organização dos dados em um banco de dados.


 

📝 Consulta SQL

O seguinte código SQL realiza duas operações:

  1. Retorna um registro da tabela informada.

  2. Lista a estrutura da tabela, incluindo nomes das colunas, tipos de dados, tamanho máximo, precisão, escala, se permite valores nulos e se faz parte da chave primária.

DECLARE @tab VARCHAR(50), @SQL NVARCHAR(1000)
SET @tab = 'D2D_history_products'

-- Retorna um registro da tabela
SET @SQL = 'SELECT TOP 1 * FROM ' + @tab
EXEC (@SQL)

-- Lista a estrutura da tabela
SELECT
    c.name AS 'Nome da Coluna',
    CASE
        WHEN t.Name = 'varchar' THEN CONCAT(t.Name, '(', c.max_length, ')')
        ELSE t.Name
    END AS 'Tipo de Dado',     
    c.max_length AS 'Tamanho Máximo',
    c.precision AS 'Precisão',
    c.scale AS 'Escala',
    c.is_nullable AS 'Permite Nulo',
    ISNULL(i.is_primary_key, 0) AS 'Chave Primária'
FROM    
    sys.columns c
INNER JOIN
    sys.types t ON c.user_type_id = t.user_type_id
LEFT OUTER JOIN
    sys.index_columns ic ON ic.object_id = c.object_id AND ic.column_id = c.column_id
LEFT OUTER JOIN
    sys.indexes i ON ic.object_id = i.object_id AND ic.index_id = i.index_id
WHERE
    c.object_id = OBJECT_ID(@tab)

 

🔍 Explicação do Código

  • SELECT TOP 1 * FROM tabela → Retorna um único registro da tabela para visualização dos dados.

  • sys.columns → Contém informações sobre as colunas da tabela.

  • sys.types → Define os tipos de dados das colunas.

  • sys.index_columns e sys.indexes → São usadas para verificar se a coluna faz parte da chave primária.


 

📖 Exemplo de Caso de Uso

Imagine que um analista de dados precise documentar a estrutura das tabelas de um banco de dados de e-commerce. Ele pode utilizar esta consulta para gerar um relatório detalhado com as colunas, tipos de dados e restrições, facilitando a análise e integração dos dados com outros sistemas.


 

📌 Benefícios

Facilidade de documentação: Gera um dicionário de dados automaticamente.
Auditoria e conformidade: Permite verificar se as colunas estão corretamente configuradas.
Melhoria na análise de dados: Ajuda a entender a estrutura da tabela antes de realizar consultas complexas.


 

🏁 Considerações Finais

Essa abordagem é útil para diversas finalidades, desde a análise estrutural até auditorias e otimizações. Ao utilizá-la, você pode compreender melhor como os dados estão organizados e tomar decisões mais assertivas sobre modelagem e desempenho do banco de dados. 🚀

Data de Publicação: 18-04-2024

Categoria: SQL Server