Dicas SSMS – Retornando Informações sobre uma Tabela

Fala pessoal,

Na dica de hoje vou mostrar um atalho no SSMS que retorna várias informações muito úteis sobre uma tabela. #gogogo


CURSO GRATUITO – 50 Dicas e Atalhos SSMS (SQL Server Management Studio):

Fica a dica pra quem ainda não fez o meu CURSO GRATUITO com 50 Dicas e Atalhos do SSMS (SQL Server Management Studio). Nesse curso reuni algumas dicas que eu mais utilizo no meu dia a dia para ajudar a melhorar a sua produtividade.

https://cursos.powertuning.com.br/course?courseid=50-dicas-e-atalhos-ssms


Versão SSMS:

Recomendo que você utilize a versão mais atual possível do SSMS, pois algumas dicas podem não funcionar em versões mais antigas. Segue abaixo o link para download:

https://docs.microsoft.com/en-us/sql/ssms/download-sql-server-management-studio-ssms?view=sql-server-ver15


Retornando Informações sobre uma Tabela:

Sabe quando você precisa validar qual o tipo de dados e o tamanho da coluna de uma determinada tabela, o que você faz para conseguir essa informação? Ou quando você quer validar se ela já possui algum índice começando por uma determinada coluna? Entre outras coisas mais…

Primeiro vou montar um cenário para mostrar como a dica de hoje pode ser útil. =)

Vamos criar uma tabela chamada “Profissao” e inserir alguns registros.

Agora vamos criar uma outra tabela chamada “Cliente” e inserir alguns registros também. Essa tabela possui uma referência com a tabela anterior pela coluna “Id_Profissao”. Após a criação, faço um SELECT com um JOIN para retornar algumas informações das tabelas.

Agora sim vamos mostrar a dica de hoje!!!

Para retornar algumas informações sobre uma tabela de uma forma bem simples e rápida, basta fazer o seguinte:

  • Selecionar o nome da tabela no script;
  • Pressionar ALT + F1.

OU

  • Executar a procedure “sp_help” e informar no parâmetro o nome da tabela (você deve executar conectado na database que possui a tabela).

O Resultado será o mesmo nessas duas formas que citei:

Vou listar aqui algumas das informações que podemos observar nesse print:

  • Nome da tabela e data de criação;
  • Todas as colunas da tabela informando o tipo, tamanho, se aceita NULL ou não (Nullable), collation;
  • Se alguma coluna possui IDENTITY;
  • O FILEGROUP da tabela;
  • Todos os ÍNDICES da tabela;
  • Todas as CONSTRAINTS da tabela;
  • Por fim, se ela é referenciada por outra tabela.

“Caramba, que TOP Luiz!!!! Retorna muita informação útil mesmo cara!!!”

Eu utilizo esse atalho praticamente todos os dias! Se você ainda não conhecia, espero que use bastante a partir de agora! xD

Existe um TRUQUE por trás desse atalho do ALT + F1, mas isso será assunto para um próximo post. #aguarde


Object Explorer

Complementando, através do Object Explorer nós também conseguimos ver algumas informações sobre as tabelas da seguinte maneira:

  • Expandir a database -> expandir as tabelas (aqui você também pode filtrar o nome da tabela) -> expandir a tabela específica -> expandir os componentes da tabela
  • Clicar com o botão direito no nome da tabela -> Design

Aqui uma nova janela será aberta, na parte de cima ficam as colunas com os tipos e na parte de baixo tem mais detalhes sobre a coluna específica.

Agora vamos mostrar duas situações onde podemos utilizar a dica de hoje para nos ajudar no nosso dia a dia.


CASO 1 – Validar Tamanho da Coluna:

Vamos fazer um simples teste inserindo um novo registro na tabela “Profissao”.

Eita! Tivemos um erro de dados truncados! Até o SQL Server 2017 você verá a mensagem abaixo:

Msg 8152, Level 16, State 30, Line 57

String or binary data would be truncated.

The statement has been terminated.

A partir do SQL Server 2019 essa mensagem está muito melhor e facilita demais a nossa vida!!! Ela nos dá muito mais informações para encontrar o erro mais rapidamente.

Msg 2628, Level 16, State 1, Line 57

String or binary data would be truncated in table ‘Traces.dbo.Profissao’, column ‘Nm_Profissao’. Truncated value: ‘Administrador de Banco de Dado’.

The statement has been terminated.

Deixo aqui também uma referência para mais um post TOP do nosso amigo Dirceu Resende.

https://www.dirceuresende.com/blog/sql-server-string-or-binary-data-would-be-truncated-o-que-e-como-identificar-a-causa-raiz-e-como-corrigir/

“Poxa Luiz, mas eu vou ter que migrar para o SQL Server 2019 para ter esse nível de informação???”

Não, pois a Trace Flag 460 pode ser habilitada para ter esse mesmo comportamento, caso você esteja utilizando alguma das versões abaixo ou superiores:

Cumulative Update 12 for SQL Server 2017

Cumulative Update 6 for SQL Server 2016 SP2

https://docs.microsoft.com/en-us/sql/t-sql/database-console-commands/dbcc-traceon-trace-flags-transact-sql?view=sql-server-ver15

https://support.microsoft.com/en-us/help/4468101/optional-replacement-for-string-or-binary-data-would-be-truncated

OK, já vimos a mensagem de erro e agora precisamos ver a definição da coluna “Nm_Profissao” na tabela “Profissao”. Novamente, basta selecionar o nome da tabela no script e pressionar ALT + F1.

Agora podemos identificar que a coluna foi definida com o tipo VARCHAR(30). Contudo, se você executar o script abaixo vai ver que essa string possui o tamanho 31 e por isso tivemos o erro!

Nesse caso, você tem duas opções para resolver o problema:

  • Aumentar o tamanho da coluna na tabela;
  • Utilizar uma string menor.

No meu caso, vou utilizar uma string menor para facilitar e o comando será executado com sucesso.


CASO 2 – Validar Índices da Tabela:

Por fim, imagine que você precisa retornar alguns dados da tabela fazendo alguns filtros. Como você é sinistro em Tuning de Queries e já fez os Cursos do Fabiano Amorim, você sabe que se a tabela tiver algum índice começando pelas colunas “Nm_Cliente” e “Dt_Nascimento” a performance da query pode ser melhor.

Então, novamente vamos selecionar o nome da tabela no script e pressionar ALT + F1.

Como podemos ver, a tabela ainda não possui índices por essas colunas e nós vamos cria-los.

Agora sim a tabela possui os índices para ajudar na performance das nossas consultas.

Observação importante:

Repare que na criação dos índices eu utilizei o “INCLUDE(NomeColuna)”, mas ele não é listado com esse atalho!!! Então tome cuidado!!!

Nesses casos, recomendo que utilize o script abaixo, pois ele retorna essa informação e mais algumas coisas legais. #ficaadica

https://github.com/luizvitorf/SQLServer/blob/master/Scripts/Tuning/Informa%C3%A7%C3%B5es%20completas%20dos%20%C3%ADndices%20de%20uma%20tabela.txt


Outros Posts – Dicas SSMS:

Segue abaixo um link com mais alguns posts com dicas sobre o SSMS:

https://luizlima.net/category/sql-server/ssms/


Espero que tenha gostado e que isso também possa ser útil no seu dia a dia. Até o próximo post!

Me siga no LinkedIn e YouTube para ficar por dentro das novidades.

Abraço,

Luiz Vitor França Lima

Consultor SQL Server

3 comentários em “Dicas SSMS – Retornando Informações sobre uma Tabela

    • Luiz Lima Autor do postResponder

      Fala Felipe, essa dica é muito TOP mesmo, uma das minhas favoritas =)

      Tem muita dica bacana pra compartilhar ainda, fica de olho ai xD

      Abraço,
      Luiz Vitor

  1. Pingback: Dicas T-SQL – Tabelas Temporárias – Parte 1 – Tabelas Locais – Luiz Lima

Deixe uma resposta