← Questões de Banco de Dados

Banco de Dados · FGV · 2022

Questão comentada de Banco de Dados

Joana trabalha com extração e consolidação de dados e precisa ter acesso aos metadados de um banco de dados SQL Server para compreender melhor o modelo e as estruturas utilizadas. Para começar, Joana resolveu criar uma consulta SQL que produza uma lista das tabelas, com as respectivas colunas com seus tipos de dados e outras propriedades. O comando que Joana deve usar é:

Gabarito: D

Quando a ideia é “espionar” a estrutura do banco, você precisa consultar as tabelas de metadados do próprio SQL Server. Em versões mais antigas, isso era feito com views/tabelas de sistema como sysobjects, syscolumns e systypes, que permitem listar tabelas, colunas e seus tipos de dados. É aquele tipo de consulta que parece burocrática, mas salva tempo quando você precisa entender um banco que ninguém documentou direito. Na questão, Joana quer uma lista das tabelas com as respectivas colunas, tipos e propriedades como se a coluna é calculada ou nula. Para isso, a consulta deve pegar os objetos do tipo tabela e relacioná-los com as colunas pelo identificador do objeto, além de associar cada coluna ao seu tipo em systypes. O gabarito é a letra D porque ela usa sysobjects para as tabelas, filtra xtype='U', que identifica tabela de usuário no SQL Server, e faz a ligação correta por s1.id = s2.id. Depois, relaciona syscolumns com systypes por xtype e xusertype, recuperando o nome do tipo e outras propriedades da coluna. Em termos práticos, é exatamente o caminho para montar um inventário de tabelas e colunas. As demais opções erram por usar tabelas que não correspondem ao catálogo correto, por empregar campos de junção inexistentes ou por confundir o identificador do tipo de objeto. Em prova de SQL Server, banca adora essa troca de nomes parecidos para ver se você cai no detalhe.

Continue treinando

Questões relacionadas