Compartir a través de


Tutorial: Depurar un desencadenador 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.

Para depurar un desencadenador, establezca un punto de interrupción en el procedimiento almacenado ya que esto activará el desencadenador, establezca un punto de interrupción en el desencadenador y, luego, siga las indicaciones que aparecen en Tutorial: Depurar un procedimiento almacenado de T-SQL.

En este ejemplo se utiliza la base de datos AdventureWorks, que tiene una tabla denominada Sales.Currency con un desencadenador UPDATE. El ejemplo incluye un procedimiento almacenado que actualiza una fila en la tabla, lo que activará el desencadenador. Establezca los puntos de interrupción en el desencadenador y, a través de la ejecución con diferentes parámetros del procedimiento almacenado, puede seguir las diferentes rutas de acceso de ejecución en el desencadenador.

Nota:

Los cuadros de diálogo y comandos de menú que se ven pueden diferir de los descritos en la Ayuda, en función de los valores de configuración o de edición activos. Para cambiar la configuración, elija la opción Importar y exportar configuraciones del menú Herramientas. Para obtener más información, vea Valores de configuración de Visual Studio.

Para depurar un desencadenador de SQL

  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 primera parte del ejemplo siguiente y asígnele el nombre UpdateCurrency_T_SQL. Para obtener más información, vea Cómo: Desarrollar con el tipo de proyecto de SQL Server.

  3. Defina los puntos de interrupción UpdateCurrency_T_SQL. 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 del desencadenador.

    1. Para abrir el código fuente del desencadenador, haga clic con el botón secundario del mouse (ratón) en el nodo Tablas, haga clic con el botón secundario en el nodo de la tabla Sales.Currency y, por último, haga doble clic en el icono del desencadenador denominado uCurrency.

    2. Haga clic en el margen gris junto situado junto a la instrucción SET NOCOUNT ON para establecer un punto de interrupción en el desencadenador. Este paso es obligatorio: si no establece un punto de interrupción en el desencadenador, pasará por alto el código cuando intente ejecutarlo paso a paso.

  5. Ejecute paso a paso el procedimiento almacenado. Para obtener más información, vea Cómo: Recorrer paso a paso un objeto utilizando el Explorador de servidores.

    Aparecerá el cuadro de diálogo Ejecutar procedimiento almacenado, que solicita los valores de parámetro.

  6. Establezca los siguientes valores de parámetro:

    1. @currencyCode = AAA

    2. @name = un valor arbitrario como Mi nombre de prueba.

    Aparece la flecha amarilla del puntero de instrucción en la línea SET @mynvarchar = @@VERSION, la primera línea ejecutable de código en el procedimiento almacenado.

  7. Pruebe diferentes funciones de depuración.

    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 UPDATE, al presionar F11 de nuevo, ejecutará paso a paso las instrucciones del desencadenador.

    2. Ejecute paso a paso las instrucciones del desencadenador hasta que se salga y vuelva al procedimiento almacenado, y continúe hasta el fin.

  8. En el Explorador de servidores puede comprobar que se insertaron los datos haciendo clic con el botón secundario del mouse en el nodo Sales.Currency bajo Tablas y seleccionando Mostrar datos de tabla.

Ejemplo

Este es el código para el procedimiento almacenado que activará al desencadenador.

ALTER PROCEDURE dbo.UpdateCurrency_T_SQL
    (
        @currencyCode   nvarchar(3),
        @Name           nvarchar(50)           
    )
AS
    SET NOCOUNT ON
    UPDATE Sales.Currency
    SET Name = @Name 
        WHERE CurrencyCode = @currencyCode 
    RETURN

Vea también

Conceptos

Depurar SQL

Referencia

Explorador de servidores/Explorador de bases de datos