Clicky

Fale Conosco

Converse com nossos especialistas e descubra como transformar seus dados em informações seguras, disponíveis e acessíveis.

Endereço

Rua Angelo Antonello, 93 – Sala 62, Centro – Farroupilha/RS – CEP: 95170-492

Contato Comercial

Email: contato@cdbdatasolutions.com.br
Telefone: (54) 3401-1471

Como Debugar um Código T-SQL?

  • Por Tiago Crespi e Rodrigo Crespi
  • 04/07/2022
  • 522 Visualizações

Olá Pessoal!

Hoje estamos aqui para falar de um assunto que vai ajudar muito quem desenvolve códigos T-SQL, principalmente procedures grandes, as quais são difíceis de depurar.

Não sabemos se todos perceberam, mas a partir da versão 18 do Management Studio não existe mais a opção de debug, até a versão 17 havia um botão ao lado do “Execute” chamado “Debug” que tinha a função de executar uma consulta ou uma procedure passo a passo, facilitando a vida do desenvolvedor em T-SQL.

Porém a partir de versão 18 este botão simplesmente desapareceu:

Nem mesmo um menu ou uma opção no menu query para debug não temos mais:

E no Azure Data Studio?

Também não tem nenhuma opção de debug:

E como debugamos uma query ou uma procedure sem a opção de debug?

Tem algumas formas, uma delas é incluir alguns prints no código, dependendo da situação muitos prints, assim podemos analisar o comportamento e os retornos. Porém, apesar de eficiente esse método é muito demorado e complicado, afinal depende de diversas execuções e releituras de código.

Mas, o método mais eficiente que encontramos foi utilizar o SQL Server Data Tools. Sim! A mesma ferramenta utilizada para criar os pacotes do Integration Service. E como fazemos isso? 

Antes de mostrar como debugamos um código no Data Tools é importante esclarecer que ele é um componente do Visual Studio, logo deveremos ter instalado o Visual Studio 2019 (até a publicação desse artigo não havia sido lançado versão do Data Tools para o Visual Studio 2022).

Se vocês já tiverem o Visual Studio 2019 instalado é só abrir o instalador e adicionar a feature. Na imagem abaixo mostra qual é o pacote de ferramenta que devem escolher:

Depois do Visual Studio e do pacote instalado vamos criar um projeto do tipo “SQL Server Database Project”:

A tela do Visual Studio é bem intuitiva, mesmo para quem não tem muita familiaridade. Após ser escolhido o tipo de projeto, a próxima tela perguntará o nome do projeto e onde ele será gravado, conforme a imagem abaixo:

Na criação do projeto, vamos ter que adicionar a conexão com o banco onde o código T-SQL será executado. Uma boa dica é façam o debug em ambiente de testes, para evitar desastres no ambiente de produção.

Para adicionar uma nova conexão basta ir no Server Explorer, clicar com o botão direito em Data Connections e selecionar Add connection. A tela vai aparecer e nela vocês vão informar os dados de conexão, servidor, instância, usuário e senha.

Com a conexão ao banco pronta, basta adicionar um novo arquivo para escrever nosso código. No Solution Explorer, clique com o botão direito no projeto, Add e New Item. Abrirá uma nova tela com os tipos de arquivos que o projeto permite que sejam criados.

Dentre os vários tipos escolham Stored Procedure, de o nome para a sua Procedure e adicione o novo arquivo, ali ele já será criado com a estrutura de uma procedure. A partir daqui é só escrever seu código.

Na guia onde está o código da procedure, quando esta for executada (F5), será criada no banco. Se ela já existir, o Visual Studio irá atualiza-la, mesmo que no código esteja como “Create Procedure”. Para debugar temos que criar uma nova query com a execução da procedure, que pode ser executado com o atalho “Alt+F5”, ou clicando como o botão direito do mouse e escolhendo a “Execute With Debugger”.

Assim quando chamar a procedure com Debugger será possível executá-la passo a passo, verificando o fluxo e o resultado dos passos da mesma:              

Esperamos que esta dica ajude a criar códigos melhores e facilitar o dia-a-dia do desenvolvimento de códigos T-SQL.

Até a próxima pessoal.😊

Abrir bate-papo
Olá! Somos especialistas em Infraestrutura e Inteligência de Dados.
Como podemos ajudá-lo?