Procedura dettagliata: esecuzione del debug di un trigger T-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. |
Per eseguire il debug di un trigger, è necessario impostare un punto di interruzione in una stored procedure che causerà l'attivazione del trigger, impostarne un altro nel trigger, quindi procedere come illustrato in Procedura: eseguire il debug di una stored procedure T-SQL.
Nell'esempio seguente viene utilizzato il database AdventureWorks, che contiene una tabella Sales.Currency con un trigger UPDATE. Nell'esempio è inclusa una stored procedure che aggiorna una riga della tabella, causando in tal modo l'attivazione del trigger. Impostare i punti di interruzione nel trigger e seguire diversi percorsi di esecuzione nel trigger eseguendo la stored procedure con parametri diversi.
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 di SQL
In un nuovo progetto SQL Server stabilire una connessione al database di esempio AdventureWorks. Per ulteriori informazioni, vedere Procedura: connettersi a un database.
Creare una nuova stored procedure utilizzando il codice contenuto nella prima sezione relativa agli esempi e denominarla UpdateCurrency_T_SQL. Per ulteriori informazioni, vedere Procedura: sviluppare con il tipo di progetto SQL Server.
Impostare punti di interruzione in UpdateCurrency_T_SQL. Si tratta di un'operazione facoltativa perché il debug diretto di database fa sì che la prima riga della procedura svolga la funzione di punto di interruzione.
Impostare punti di interruzione per il trigger.
Aprire il codice sorgente del trigger facendo clic con il pulsante destro del mouse sul nodo Tabelle, quindi sul nodo della tabella Sales.Currency, infine facendo doppio clic sull'icona del trigger denominato uCurrency.
Fare clic sul margine grigio accanto all'istruzione SET NOCOUNT ON per impostare un punto di interruzione nel trigger. Questo passaggio non è facoltativo: se non viene impostato un punto di interruzione nel trigger, il codice relativo verrà saltato quando si tenterà di eseguirlo.
Eseguire le istruzioni nella stored procedure. Per ulteriori informazioni, vedere Procedura: eseguire istruzioni in un oggetto con Esplora server.
Verrà visualizzata la finestra di dialogo Esegui stored procedure, con la richiesta dei valori di parametro.
Impostare i valori di parametro riportati di seguito:
@currencyCode = AAA
@name = un valore arbitrario come Nome del test.
La freccia gialla di un puntatore all'istruzione verrà visualizzata nella riga SET @mynvarchar = @@VERSION, la prima riga di codice eseguibile nella stored procedure.
Provare più funzionalità di debug.
Eseguire, un'istruzione alla volta, il codice utilizzando F11 o il pulsante Esegui istruzione.
In corrispondenza dell'istruzione UPDATE, quando si preme nuovamente F11, verrà eseguita l'istruzione del trigger.
Eseguire, un'istruzione alla volta, il trigger finché non si torna alla stored procedure, quindi continuare fino al termine.
In Esplora server è possibile verificare che i dati siano stati inseriti facendo clic con il pulsante destro del mouse sul nodo Sales.Currency in Tabelle e scegliendo Mostra dati tabella.
Esempio
Di seguito viene riportato il codice della stored procedure che causa la generazione del trigger.
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