Compartilhar via


Especificar uma ação de ponto de interrupção

Aplica-se: SQL Server

Uma ação de ponto de interrupção 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 uma 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 no depurador Transact-SQL é imprimir informações na janela Saída do depurador.

A mensagem de impressão é especificada na caixa Mostrar uma mensagem na Janela de Saída: 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á <No caller available>. 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'), a diferença é 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 p mesmo valor que SELECT kpid FROM sys.sysprocesses WHERE spid = @@SPID, a diferença é que $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 \\.

Especificar uma ação

  1. Na janela do editor, clique com o botão direito do mouse no glifo do ponto de interrupção e selecione Ações 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 selecione Configurações no menu de atalho.

  2. Na caixa de diálogo Configurações de Pontos de Interrupção, selecione a opção Ações.

  3. Na caixa de diálogo Mostrar uma mensagem na Janela de Saída:, insira uma expressão.

  4. Selecione Continuar execução de código se você não deseja que o ponto de interrupção pause a execução. Essa opção está ativa apenas se você selecionar a opção Ações.

  5. Selecione Fechar para implementar as alterações.