Partilhar via


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

Aplica-se a:SQL Server

Uma ação de ponto de interrupção especifica uma tarefa personalizada realizada pelo depurador Transact-SQL num ponto de interrupção. Se a contagem de ocorrências especificada for atingida e a condição especificada do ponto de interrupção for satisfeita, o depurador executará a ação definida para o ponto de interrupção.

Considerações sobre a ação

A ação padrão para um ponto de interrupção é interromper a execução quando a contagem de acertos e a condição de ponto de interrupção são satisfeitas. O uso principal de uma ação no depurador Transact-SQL é imprimir informações na janela Output do depurador.

A mensagem é especificada na caixa Mostrar uma mensagem na janela de saída:. Consiste numa cadeia de texto que inclui expressões com informações do Transact-SQL a ser depurado. As expressões incluem:

  • Uma expressão Transact-SQL contida em suportes encaracolados ({}). As expressões podem incluir Transact-SQL variáveis, parâmetros e funções internas. Os exemplos incluem {@MyVariable}, {@NameParameter}, {@@SPID}ou {SERVERPROPERTY('ProcessID')}.

  • Uma das seguintes palavras-chave:

    • $ADDRESS retorna o nome do procedimento armazenado ou da função definida pelo usuário onde o ponto de interrupção está 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 de código Transact-SQL que chamou um procedimento armazenado ou 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 função definida pelo usuário chamada a partir 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 função definida pelo usuário chamada de outro procedimento armazenado ou função, $CALLER retornará o nome do procedimento ou função de chamada.

    • $CALLSTACK retorna a pilha de chamadas de funções na sequência que invocou o procedimento armazenado atual ou a função definida pelo utilizador. 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 da função definida pelo usuário onde o ponto de interrupção está 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á sendo executado. $PID retorna a mesma ID que SERVERPROPERTY('ProcessID'), exceto 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 executa o lote de Transact-SQL. O thread é um 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 WHERE spid = @@SPID, exceto 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 rato no ícone de ponto de interrupção e, em seguida, selecione Ações no menu de atalho.

    -ou-

    Na janela Pontos de interrupção, clique com o botão direito do rato no glifo do ponto de interrupção e, em seguida, selecione Definições no menu de atalho.

  2. Na caixa de diálogo Configurações do Ponto 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 a execução de código se não quiser que o ponto de interrupção pause a execução. Essa opção só estará ativa se seleccionar a opção Ações.

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