Tutorial: Depurar una función definida por el usuario de T-SQL

Actualización: noviembre 2007

Este tema se aplica a:

Edición

Visual Basic

C#

C++

Web Developer

Express

Estándar

Pro y Team

Leyenda de la tabla:

Se aplica

No procede

Comando o comandos ocultos de manera predeterminada.

En este ejemplo se utiliza una función definida por el usuario (UDF) existente denominada ufnGetStock en la base de datos AdventureWorks. Esta función devuelve un recuento de elementos en existencia para un ProductID determinado.

El ejemplo crea un procedimiento almacenado que llama al UDF varias veces. El procedimiento almacenado llama al UDF con diferentes parámetros, por lo que puede seguir las diferentes rutas de acceso de ejecución a través de la UDF. El ejemplo también ilustra el salto de un objeto de T-SQL, o procedimiento almacenado, a otro (función). Los pasos son similares a los descritos en Tutorial: Depurar un procedimiento almacenado de T-SQL.

También puede realizar la depuración de base de datos directa ejecutando paso a paso las instrucciones de la función en el Explorador de servidores.

Para depurar una función definida por el usuario

  1. En un nuevo proyecto de SQL Server, establezca una conexión a la base de datos de ejemplo AdventureWorks. Para obtener más información, vea Cómo: Conectarse a una base de datos.

  2. Cree un nuevo procedimiento almacenado utilizando el código de la sección de ejemplo siguiente y asígnele el nombre Test_ufnGetStock. Para obtener más información, vea Cómo: Desarrollar con el tipo de proyecto de SQL Server.

  3. Establezca puntos de interrupción en Test_ufnGetStock. Esto es opcional, ya que la depuración de base de datos directa hace que la primera línea del procedimiento actúe como un punto de interrupción.

  4. Establezca los puntos de interrupción en la UDF ufnGetStock.

    1. Para abrir el código fuente de la UDF, haga clic con el botón secundario del mouse (ratón) en el nodo Funciones en el Explorador de servidores y, a continuación, haga doble clic en el icono de ufnGetStock.

    2. Haga clic en el margen gris junto a la instrucción DECLARE para establecer un punto de interrupción.

  5. Ejecute paso a paso el procedimiento almacenado. Si el procedimiento tuviera parámetros, aparecería el cuadro de diálogo Ejecutar procedimiento almacenado, que solicita los valores de esos parámetros. En este caso, todos los parámetros están incluidos en el código del procedimiento almacenado. Para obtener más información, vea Cómo: Recorrer paso a paso un objeto utilizando el Explorador de servidores.

  6. Pruebe características de depuración diferentes.

    1. Ejecute las instrucciones paso a paso del código utilizando la tecla F11 o el botón Paso a paso por instrucciones. En la instrucción SELECT, al presionar F11 de nuevo, ejecutará paso a paso las instrucciones de la UDF. Ejecute paso a paso la UDF hasta que se salga y vuelva al procedimiento almacenado, y continúe.

    2. Puede observar las diferentes rutas de acceso de ejecución en la UDF en función de los parámetros de entrada. Puede ver los valores de las variables en las UDF en la ventana Variables locales o situando el puntero del mouse sobre ellas.

Ejemplo

Este es el código para el procedimiento almacenado que llama a la función definida por el usuario.

ALTER PROCEDURE Test_ufnGetStock 
AS
    SELECT dbo.ufnGetStock(1) as CurrentStock   -- non-zero inventory
    SELECT dbo.ufnGetStock(316) as CurrentStock -- zero inventory
    SELECT dbo.ufnGetStock(5) as CurrentStock   -- no such product

Vea también

Conceptos

Depurar SQL

Referencia

Explorador de servidores/Explorador de bases de datos