📌 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:
-
Retorna um registro da tabela informada.
-
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. 🚀