Especificar uma ação de ponto de interrupção
Uma ação de ponto de interrupção Quando Atingido especifica uma tarefa personalizada que o depurador Transact-SQL executa para um ponto de interrupção. Se a contagem de ocorrências especificada for atingida, e qualquer condição de ponto de interrupção especificada for atendida, o depurador executará a ação especificada para o ponto de interrupção.
Considerações sobre a ação
A ação padrão de um ponto de interrupção é interromper a execução quando a contagem de ocorrências e a condição de ponto de interrupção são atendidas. O principal uso de uma ação Quando Atingido no depurador Transact-SQL é imprimir informações na janela Saída do depurador especificando uma mensagem de impressão.
Uma mensagem de impressão é especificada na opção Imprimir uma Mensagem e como uma cadeia de caracteres de texto que inclui expressões que contêm informações do Transact-SQL que está sendo depurado. As expressões incluem:
Uma expressão Transact-SQL entre chaves ({}). As expressões podem incluir variáveis, parâmetros e funções internas do Transact-SQL. Os exemplos incluem {@MyVariable}, {@NameParameter}, {@@SPID} ou {SERVERPROPERTY(‘ProcessID’)}.
Uma das seguintes palavras-chave:
$ADDRESS retorna o nome do procedimento armazenado ou a função definida pelo usuário onde o ponto de interrupção foi definido. Se o ponto de interrupção for definido na janela do editor, $ADDRESS retornará o nome do arquivo de script que está sendo editado. $ADDRESS e $FUNCTION retornam as mesmas informações no depurador Transact-SQL.
$CALLER retorna o nome da unidade do código Transact-SQL que chamou um procedimento armazenado ou uma função. Se o ponto de interrupção estiver na janela do editor, $CALLER retornará <Nenhum chamador disponível>. Se o ponto de interrupção estiver em um procedimento armazenado ou se a função definida pelo usuário foi chamada do código na janela do editor, $CALLER retornará o nome do arquivo que está sendo editado. Se o ponto de interrupção estiver em um procedimento armazenado ou a função definida pelo usuário tiver sido chamada de outro procedimento armazenado ou função, $CALLER retornará o nome do procedimento ou da função de chamada.
$CALLSTACK retornará a pilha de chamada de funções na cadeia que chamou o procedimento armazenado ou a função definida pelo usuário atual. Se o ponto de interrupção estiver na janela do editor, $CALLSTACK retornará o nome do arquivo de script que está sendo editado.
$FUNCTION retorna o nome do procedimento armazenado ou a função definida pelo usuário onde o ponto de interrupção foi definido. Se o ponto de interrupção for definido na janela do editor, $FUNCTION retornará o nome do arquivo de script que está sendo editado.
$PID e $PNAME retornam a ID e o nome do processo do sistema operacional que executa a instância do Mecanismo de Banco de Dados onde o Transact-SQL está em execução. $PID retorna a mesma ID que SERVERPROPERTY(‘ProcessID’), exceto pelo fato de que $PID é um valor hexadecimal enquanto SERVERPROPERTY(‘ProcessID’) é um valor decimal.
$TID e $TNAME retornam a ID e o nome do thread do sistema operacional que está executando o lote do Transact-SQL. O thread é associado ao processo que executa a instância do Mecanismo de Banco de Dados. $TID retorna o mesmo valor que SELECT kpid FROM sys.sysprocesses, ONDE spid = @@SPID; porém, $TID é um valor hexadecimal enquanto kpid é um valor decimal.
Você também pode usar o caractere de barra invertida (\) como um caractere de escape para permitir chaves e barras invertidas na mensagem: \{, \}, e \\.
Para especificar uma ação Quando Atingido
Na janela do editor, clique com o botão direito do mouse no glifo do ponto de interrupção e clique em Quando Atingido no menu de atalho.
- ou -
Na janela Pontos de Interrupção, clique com o botão direito do mouse no glifo do ponto de interrupção e clique em Quando Atingido no menu de atalho.
Na caixa de diálogo Quando o Ponto de Interrupção for Atingido, selecione o comportamento desejado:
Selecione Imprimir uma Mensagem para imprimir uma mensagem na janela Saída do depurador quando o ponto de interrupção for atingido.
A opção Executar uma Macro não está disponível no depurador Transact-SQL e está em cinza.
Selecione Continuar execução se você não deseja que o ponto de interrupção pause a execução. Essa opção estará ativa apenas se você tiver selecionado a opção Imprimir uma Mensagem.
Clique em OK para implementar as alterações ou em Cancelar para sair sem aplicar as alterações.