Compartir a través de


Especificar una acción del punto de interrupción

Las acciones Cuando se llama de punto de interrupción especifican una tarea personalizada que el depurador de Transact-SQL realiza en un punto de interrupción. Si se alcanza el número de llamadas especificado y se satisface la condición de punto de interrupción especificada, el depurador realiza la acción definida para el punto de interrupción.

Consideraciones sobre las acciones

La acción predeterminada para un punto de interrupción es que se detenga la ejecución cuando se hayan satisfecho el número de llamadas y la condición de punto de interrupción. El uso principal de una acción Cuando se llama en el depurador de Transact-SQL consiste, sin embargo, en imprimir información en la ventana de salida del depurador, donde se especificará un mensaje de impresión.

Los mensajes de impresión se especifican en la opción Imprimir un mensaje como una cadena de texto que incluye expresiones con información de la instancia de Transact-SQL que se está depurando. Estas expresiones pueden ser:

  • Una expresión Transact-SQL escrita entre llaves ({}). Las expresiones pueden incluir variables, parámetros y funciones integradas de Transact-SQL. Algunos ejemplos serían {@MyVariable}, {@NameParameter}, {@@SPID} o {SERVERPROPERTY(‘ProcessID’)}.

  • Una de las siguientes palabras clave:

    1. $ADDRESS devuelve el nombre del procedimiento almacenado o la función definida por el usuario donde se ha establecido el punto de interrupción. Si el punto de interrupción está establecido en la ventana del editor, $ADDRESS devuelve el nombre del archivo de script que se está editando. $ADDRESS y $FUNCTION devuelven la misma información en el depurador de Transact-SQL.

    2. $CALLER devuelve el nombre de la unidad de código de Transact-SQL encargada de llamar a un procedimiento almacenado o una función. Si el punto de interrupción se encuentra en la ventana de editor, $CALLER devuelve un mensaje que indica <No hay un autor de llamada disponible>. Si el punto de interrupción es un procedimiento almacenado o una función definida por el usuario que se ha llamado desde el código de la ventana del editor, $CALLER devuelve el nombre del archivo que se está editando. Si el punto de interrupción es un procedimiento almacenado o una función definida por el usuario que se ha llamado desde otro procedimiento almacenado o función, $CALLER devuelve el nombre del procedimiento o la función de llamada.

    3. $CALLSTACK devuelve la pila de llamadas de las funciones de la cadena que llamaron al procedimiento almacenado o la función definida por el usuario actual. Si el punto de interrupción está establecido en la ventana del editor, $CALLSTACK devuelve en nombre del archivo de script que se está editando.

    4. $FUNCTION devuelve el nombre del procedimiento almacenado o la función definida por el usuario donde se ha establecido el punto de interrupción. Si el punto de interrupción está establecido en la ventana del editor, $FUNCTION devuelve en nombre del archivo de script que se está editando.

    5. $PID y $PNAME devuelven el identificador y el nombre del proceso del sistema operativo que está ejecutando la instancia del motor de base de datos en la que se está ejecutando Transact-SQL. $PID devuelve el mismo identificador que SERVERPROPERTY(‘ProcessID’), salvo porque $PID es un valor hexadecimal mientras que SERVERPROPERTY(‘ProcessID’) es un valor decimal.

    6. $TID y $TNAME devuelven el identificador y el nombre del subproceso del sistema operativo en el que se está ejecutando el lote Transact-SQL. El subproceso está asociado al proceso que ejecuta la instancia del motor de base de datos. $TID devuelve el mismo amor que el kpid SELECT de sys.sysprocesses donde spid = @@SPID, salvo porque $TID en un valor hexadecimal mientras que kpid es un valor decimal.

  • También puede utilizar el carácter de barra diagonal inversa (\) como carácter de escape para permitir el uso de llaves y barras diagonales inversas en el mensaje: \{, \}, y \\.

Para especificar una acción Cuando se llama

  1. En la ventana del editor, haga clic con el botón secundario en el glifo de punto de interrupción y, a continuación, en el menú contextual, haga clic en Cuando se llama.

    - O bien -

    En la ventana Puntos de interrupción, haga clic con el botón secundario en el glifo de punto de interrupción y, a continuación, en el menú contextual, haga clic en Cuando se llama.

  2. En el cuadro de diálogo Cuando el punto de interrupción se visita, seleccione el comportamiento que desee:

    1. Seleccione Imprimir un mensaje para imprimir un mensaje en la ventana de salida del depurador cuando se alcance el punto de interrupción.

    2. La opción Ejecutar una macro no está disponible en el depurador Transact-SQL y aparece deshabilitada.

    3. Seleccione Continuar ejecución si no desea que el punto de interrupción detenga la ejecución. Esta opción solo está activa si se ha seleccionado la opción Imprimir un mensaje.

  3. Haga clic en Aceptar para implementar los cambios o en Cancelar para salir sin aplicar los cambios.

Vea también

Tasks

Especificar una condición de punto de interrupción

Especificar un número de llamadas