Freigeben über


Exemplarische Vorgehensweise: Debuggen eines Transact-SQL-Triggers

Dieses Thema gilt für folgende Editionen:

Visual Studio Ultimate

Visual Studio Premium

Visual Studio Professional

Visual Studio Express

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

Legen Sie zum Debuggen eines Triggers einen Haltepunkt in einer gespeicherten Prozedur, die den Trigger auslöst, und einen Haltepunkt im Trigger fest, und gehen Sie anschließend wie unter Exemplarische Vorgehensweise: Debuggen einer gespeicherten Transact-SQL-Prozedur beschrieben vor.

In diesem Beispiel wird die AdventureWorks2008-Datenbank verwendet, die eine Purchasing.Vendor-Tabelle mit einem DELETE-Trigger enthält.Das Beispiel enthält eine gespeicherte Prozedur, die eine Zeile in der Tabelle löscht und dadurch den Trigger auslöst.Legen Sie Haltepunkte im Trigger fest. Anschließend können Sie verschiedene Ausführungspfade im Trigger verfolgen, indem Sie die gespeicherte Prozedur mit unterschiedlichen Parametern ausführen.

Tipp

Je nach aktivierten Einstellungen oder verwendeter Edition können sich die angezeigten Dialogfelder und Menübefehle von den Beschreibungen in der Hilfe unterscheiden.Klicken Sie zum Ändern der Einstellungen im Menü Extras auf Einstellungen importieren und exportieren.Weitere Informationen finden Sie unter Visual Studio Settings.

So debuggen Sie einen SQL-Trigger

  1. Stellen Sie in einem neuen SQL Server-Projekt eine Verbindung mit der AdventureWorks2008-Beispieldatenbank her.Weitere Informationen finden Sie unter Gewusst wie: Herstellen einer Datenbankverbindung mit dem Server-Explorer.

  2. Erstellen Sie mit dem Code aus dem ersten Beispielabschnitt unten eine neue gespeicherte Prozedur mit dem Namen UpdateCurrency_T_SQL.Weitere Informationen finden Sie unter Gewusst wie: Debuggen mit einem SQL Server-Datenbankprojekt oder -Serverprojekt.

  3. Legen Sie Haltepunkte in DeleteVendor fest.Dieser Schritt ist optional, da die erste Zeile der Prozedur beim direkten Datenbankdebugging als Haltepunkt fungiert.

  4. Legen Sie Haltepunkte für den Trigger fest.

    1. Öffnen Sie den Triggerquellcode, indem Sie mit der rechten Maustaste auf den Knoten Tabellen und auf den Knoten für die Purchasing.Vendor-Tabelle klicken und dann auf das Symbol für den Trigger dVendor doppelklicken.

    2. Klicken Sie mit der linken Maustaste in den grauen Rand neben der SET NOCOUNT ON-Anweisung, um einen Haltepunkt im Trigger festzulegen.Dieser Schritt ist nicht optional: Legen Sie keinen Haltepunkt im Trigger fest, wird der zugehörige Code übersprungen, wenn Sie versuchen, einen Einzelschritt in den Code auszuführen.

  5. Führen Sie einen Einzelschritt in die gespeicherte Prozedur aus.Weitere Informationen finden Sie unter Gewusst wie: Einzelschritt in ein Objekt mit dem Server-Explorer.

    Das Dialogfeld Gespeicherte Prozedur ausführen wird angezeigt, und Sie werden zur Eingabe von Parameterwerten aufgefordert.

  6. Legen Sie die folgenden Parameterwerte fest:

    @entityID = 1492

    Der gelbe Pfeil eines Anweisungszeigers wird in der Zeile SET NOCOUNT ON angezeigt, der ersten ausführbaren Codezeile in der gespeicherten Prozedur.

  7. Probieren Sie verschiedene Debugfunktionen aus.

    1. Führen Sie den Code mit der F11-TASTE oder der Schaltfläche Einzelschritt schrittweise aus.

      Wenn Sie bei der DELETE-Anweisung erneut F11 drücken, führen Sie einen Einzelschritt in den Trigger aus.

    2. Führen Sie den Trigger schrittweise aus, bis Sie wieder zur gespeicherten Prozedur gelangen, und fahren Sie dann bis zum Ende fort.

Beispiel

Dies ist der Code für die gespeicherte Prozedur, die den Trigger auslöst.

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

Siehe auch

Konzepte

Debuggen von Transact-SQL

Andere Ressourcen

Server Explorer/Database Explorer