Compartir a través de


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

Este tema se aplica a:

Visual Studio Ultimate

Visual Studio Premium

Visual Studio Professional

Visual Studio Express

ms165047.DoesApplybmp(es-es,VS.100).gif ms165047.DoesApplybmp(es-es,VS.100).gif ms165047.DoesApplybmp(es-es,VS.100).gif ms165047.DoesNotApplybmp(es-es,VS.100).gif

Este ejemplo usa una función definida por el usuario (UDF) denominada ufnGetStock existente en la base de datos AdventureWorks2008.Esta función devuelve un recuento de elementos disponibles para un ProductID determinado.

El ejemplo crea un procedimiento almacenado que llama a la UDF varias veces.El procedimiento almacenado llama a la UDF con parámetros diferentes para que pueda seguir rutas de ejecución diferentes a través de dicha UDF.El ejemplo también muestra cómo se pasa de un objeto de Transact-SQL, el procedimiento almacenado, a otro, la función.Los pasos son similares a los de Tutorial: Depurar un procedimiento almacenado de Transact-SQL.

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

Para depurar una función definida por el usuario

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

  2. Cree un procedimiento almacenado nuevo 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: Depurar con un proyecto de base de datos o con un proyecto de servidor de SQL Server.

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

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

    1. Abra el código fuente para la UDF; para ello, haga clic con el botón secundario en el nodo Funciones en el Explorador de servidores y, a continuación, haga doble clic en el icono ufnGetStock.

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

  5. Vaya al procedimiento almacenado.Si el procedimiento tuviera parámetros, habría aparecido el cuadro de diálogo Ejecutar procedimiento almacenado pidiendo sus valores.En este caso, los parámetros están codificados dentro del procedimiento almacenado.Para obtener más información, vea Cómo: Ir a un objeto usando el Explorador de servidores.

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

    1. Recorra el código con la tecla F11 o con el botón Paso a paso por instrucciones.En la instrucción SELECT, al presionar F11 de nuevo, irá a la UDF.Recorra paso a paso la UDF hasta que regrese al procedimiento almacenado y continúe.

    2. En función de los parámetros de entrada, puede observar rutas de ejecución diferentes en la UDF.Puede ver los valores de las variables de las UDF en la ventana Variables locales o colocando el cursor 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 Transact-SQL

Otros recursos

Server Explorer/Database Explorer