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 |
||||
Standard |
||||
Pro e Team |
Legenda tabella:
Applicabile |
|
Non applicabile |
|
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
In un nuovo progetto SQL Server stabilire una connessione al database AdventureWorks. Per ulteriori informazioni, vedere Procedura: connettersi a un database.
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.
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.
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.
Provare più funzionalità di debug.
Procedere oltre l'istruzione creando un'istanza di SqlTriggerContext.
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.
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.
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.
Nell'editor di testo fare clic con il pulsante destro del mouse sull'ultima riga e scegliere Inserisci punto di interruzione.
Scegliere Continua dal menu Debug. Il debugger eseguirà il codice fino al nuovo punto di interruzione.
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