Condividi tramite


Procedura dettagliata: esecuzione del debug di un trigger CLR SQL

Aggiornamento: novembre 2007

Le informazioni contenute in questo argomento sono valide per:

Edition

Visual Basic

C#

C++

Web Developer

Express

Argomento non applicabile Argomento non applicabile Argomento non applicabile Argomento non applicabile

Standard

Argomento non applicabile Argomento non applicabile Argomento non applicabile Argomento non applicabile

Pro e Team

Argomento applicabile Argomento applicabile Argomento applicabile Argomento applicabile

Legenda tabella:

Argomento applicabile

Applicabile

Argomento non applicabile

Non applicabile

Argomento valido ma comando nascosto per impostazione predefinita

Comando o comandi nascosti per impostazione predefinita.

In questo esempio viene illustrato come eseguire il debug di un trigger CLR SQL. Viene utilizzata la tabella Contact del database di esempio AdventureWorks, uno dei database installati con SQL Server 2005. Nell'esempio viene creato un nuovo trigger CLR INSERT nella tabella Contact, quindi ne vengono eseguite le istruzioni.

Nota:

Le finestre di dialogo e i comandi di menu visualizzati potrebbero non corrispondere a quelli descritti nella Guida in linea in quanto dipendono dall'edizione o dalle impostazioni attive. Per modificare le impostazioni, scegliere Importa/esporta impostazioni dal menu Strumenti. Per ulteriori informazioni, vedere Impostazioni di Visual Studio.

Per eseguire il debug di un trigger CLR SQL

  1. In un nuovo progetto SQL Server stabilire una connessione al database AdventureWorks. Per ulteriori informazioni, vedere Procedura: connettersi a un database.

  2. Creare un nuovo trigger utilizzando il codice della prima sezione relativa agli esempi e denominarlo iContact.cs. Per ulteriori informazioni, vedere Procedura: sviluppare con il tipo di progetto SQL Server.

  3. Aggiungere uno script che provi il trigger causandone la generazione. In Esplora soluzioni fare clic con il pulsante destro del mouse sulla directory Script di test, scegliere Aggiungi script di prova e inserire il codice contenuto nella seconda sezione relativa agli esempi. Salvare il file con il nome truContact.sql. Fare clic con il pulsante destro del mouse sul nome del file e scegliere Imposta come script di debug predefinito.

  4. Impostare punti di interruzione in iContact.cs, quindi scegliere Avvia dal menu Debug per compilare e distribuire il progetto, nonché per eseguirne l'unit test. Quando il puntatore all'istruzione, indicato da una freccia gialla, compare su un punto di interruzione, è in corso il debug del trigger.

  5. Provare più funzionalità di debug.

    1. Procedere oltre l'istruzione creando un'istanza di SqlTriggerContext.

    2. Aprire la finestra Variabili locali. È possibile aprire la variabile triggContext, che è un SqlTriggerContext, ed esaminarne i membri. Per ulteriori informazioni, vedere Procedura: utilizzare le finestre delle variabili di debug.

      Nota:

      È possibile che il server non rifletta le modifiche ai valori delle variabili nelle finestre del debugger. Per ulteriori informazioni, vedere Limitazioni del debug di SQL.

    3. Scegliere Esegui istruzione dal menu Debug per eseguire le istruzioni di una riga della stored procedure. Si noti che durante l'esecuzione viene creata un'istanza del valore della variabile sqlP di tipo SqlPipe.

    4. Aprire la finestra Espressioni di controllo. Trascinare la variabile sqlP in un punto qualsiasi della finestra Espressioni di controllo. La variabile verrà aggiunta all'elenco delle variabili di controllo. Per ulteriori informazioni, vedere Procedura: utilizzare le finestre delle variabili di debug.

      Nota:

      È possibile modificare i valori delle variabili anche nella finestra Espressioni di controllo.

    5. Nell'editor di testo fare clic con il pulsante destro del mouse sull'ultima riga e scegliere Inserisci punto di interruzione.

    6. Scegliere Continua dal menu Debug. Il debugger eseguirà il codice fino al nuovo punto di interruzione.

  6. Scegliere nuovamente Continua per terminare il debug del trigger. Nella finestra Output un messaggio indica che il trigger è stato distribuito correttamente e riporta il risultato dell'esecuzione dei comandi nel file truContact.sql.

Esempio

Codice per la creazione del trigger utilizzato in questo esempio.

using System;
using System.Data;
using System.Data.Sql;
using Microsoft.SqlServer.Server;


public partial class Triggers
{
      // Enter existing table or view for the target and uncomment the attribute line.
      [Microsoft.SqlServer.Server.SqlTrigger (Name="Trigger1", Target="primes", Event="FOR UPDATE")]
      public static void Trigger1()
      {
            SqlTriggerContext triggContext = SqlContext.TriggerContext;
            SqlPipe sqlP = SqlContext.Pipe;
            sqlP.Send("primes inserted!");
      }
}

Script di prova che causa la generazione del trigger.

UPDATE Person.Contact SET MiddleName = 'A' WHERE ContactID = 8

Vedere anche

Attività

Procedura: creare ed eseguire un trigger CLR di SQL Server

Altre risorse

Esecuzione del debug di database CLR SQL