Pois é pessoal, a ferramenta Query Analyser possui um debugger muito legal, muito parecido com qualquer debugador como o do Delphi ou mesmo o do VB para a depuração somente de Stored Procedures.
Antes de podermos começar a utilizar o debugger do Query Analyser devemos ter que configurar sobre qual conta de usuário o serviço do SQL Server vai estar rodando. Para isso, devemos abrir a janela que mostra os serviços que estão rodando no Windows NT ou 2000 pois somente podemos utilizar o debugger nestes sistemas operacionais.
A janela de serviços se encontra dentro do Painel de controle (Control Panel) e dentro do ícone Ferramentas Administrativas (Administrative Tools). Procure pelo serviço MSSQLServer, ou da instâcia na qual a Stored Procedure que você quer depurar está.
Na figura abaixo podemos perceber que o serviço MSSQLServer está rodando sobre as permissões do LocalSystem, que é padrão.
Clique na imagem para vê-la em tamanho real:
Escolha as propriedades para este serviço e selecione a aba Logon. Marque ‘Esta conta’ e coloque uma conta/senha com permissões de administrador do Windows que se está rodando o serviço do SQL Server. Não se esqueça de parar e inicar o serviço para que a alteração possa ser aplicada.
Feito isso, podemos abrir o Query Analyzer e nos conectar com o banco de dados normalmente. Para poder iniciar o processo de depuração, certifique-se de que o Object Browser no Query Analyzer está habilitado. Para mostrar ou esconder este frame, pressione F8 dentro de Query Analyzer após estar conectado com o banco.
Com o Object Browser aberto, escolha o banco de dados que está a Stored Procedure, abra a pasta Stored Procedures, clique com o botão direto do mouse sobre o nome da Stored Procedure que se deseja debugar e escolha Debug...
O Query Analyser mostrará uma janela solicitando o valor de qualquer parâmetro de entrada que esta Stored Procedure possuir, permitindo inclusive que se passe NULL como valor de um parâmetro. Clique no botão Execute e a janela de debug do query Analyser irá aparecer, mais ou menos como na figura abaixo:
Através dos botões na barra de ferramentas desta janela podemos fazer a maioria das operações de um debuger qualquer como marcar ou desmarcar break points, ir linha a linha ou cancelar a execução. Notem também que abaixo da janela onde está o código, três pequenas janelas estão mostrando:
* Os tipos de dados e seus valores das variáveis locais e dos parâmetros;
* Algumas variáveis públicas que começam sempre com @@. Podemos incluir outras variáveis públicas para serem mostradas nesta janela;
* A pilha de chamada de Stored Procedures (callstack);
* Os resultados que a Stored Procedure está gerando, através da divisão horizontal na parte inferior da janela
Enquanto estamos debugando o código, não podemos fazer alterações no fonte, porém podemos abrir uma nova conexão no Query Analyzer para enviar uma instrução SELECT para checar os dados de uma tabela, por exemplo.
Uma abraço e até a semana que vem pessoal!
Mauro, gostei muito da matéria sobre o Debug no SQL, eu utilizo muito no VB, mas agora eu estou com o Windows XP e ele não esta funcionando, existe alguma maneira de utiliza-lo neste SO.
Obrigado
Carlos
Os textos publicados neste espaço são de responsabilidade única de seus autores (colunistas e leitores) e podem não expressar necessariamente a opinião do iMasters.
Mauro Pichiliani é mestre em computação, possui as certificações MCP, MCDBA, MCT e MCTS e atua como consultor de banco de dados com enfoque na área de tunning.
2001 - iMasters FFPA Informática Ltda - Todos os direitos reservados.