Compartir a través de


Tutorial: Depurar un desencadenador de Transact-SQL

Este tema se aplica a:

Visual Studio Ultimate

Visual Studio Premium

Visual Studio Professional

Visual Studio Express

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

Para depurar un desencadenador, establezca un punto de interrupción en un procedimiento almacenado para que active el desencadenador, establezca un punto de interrupción en el desencadenador y, por último, continúe con el procedimiento descrito en Tutorial: Depurar un procedimiento almacenado de Transact-SQL.

En este ejemplo, se usa la base de datos AdventureWorks2008, que contiene una tabla Purschasing.Vendor con un desencadenador DELETE.El ejemplo incluye un procedimiento almacenado que elimina una fila de la tabla, lo cual provoca la activación del desencadenador.Establezca los puntos de interrupción en el desencadenador y, a través de la ejecución del procedimiento almacenado con diferentes parámetros, puede seguir las diferentes rutas de acceso de ejecución del desencadenador.

Nota

Los cuadros de diálogo y comandos de menú que verá pueden variar con respecto a los descritos en la Ayuda en función de su edición o configuración activa.Para cambiar la configuración, elija Importar y exportar configuraciones en el menú Herramientas.Para obtener más información, vea Visual Studio Settings.

Para depurar un desencadenador de SQL

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

  3. Establezca puntos de interrupción en DeleteVendor.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 para el desencadenador.

    1. Abra el código fuente del desencadenador haciendo clic con el botón secundario en el nodo Tablas; a continuación, haga clic con el botón secundario en el nodo de la tabla Purchasing.Vendor y, por último, haga doble clic en el icono del desencadenador denominado dVendor.

    2. Haga clic con el botón primario en el margen gris situado junto a la instrucción SET NOCOUNT ON para establecer un punto de interrupción en el desencadenador.Este paso no es opcional: si no establece un punto de interrupción en el desencadenador, omitirá su código al intentar ir al mismo.

  5. Vaya al procedimiento almacenado.Para obtener más información, vea Cómo: Ir a un objeto usando el Explorador de servidores.

    Aparece el cuadro de diálogo Ejecutar procedimiento almacenado, que pide los valores de los parámetros.

  6. Establezca el valor de parámetro siguiente:

    @entityID = 1492

    Aparece la flecha amarilla del puntero de instrucción en la línea SET NOCOUNT ON, la primera línea ejecutable de código del procedimiento almacenado.

  7. 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 DELETE, al presionar F11 de nuevo, irá al desencadenador.

    2. Recorra paso a paso el desencadenador hasta que regrese al procedimiento almacenado y continúe hasta el final.

Ejemplo

Este es el código del procedimiento almacenado que activa el desencadenador.

ALTER PROCEDURE dbo.DeleteVendor
    (
        @entityID       int
    )
AS
    SET NOCOUNT ON
    DELETE Purchasing.Vendor
    WHERE BusinessEntityID = @entityID 
    RETURN

Vea también

Conceptos

Depurar Transact-SQL

Otros recursos

Server Explorer/Database Explorer