Freigeben über


Löschen oder Deaktivieren von DML-Triggern

In diesem Thema wird beschrieben, wie Sie einen DML-Trigger in SQL Server 2012 mithilfe von SQL Server Management Studio oder Transact-SQL löschen oder deaktivieren.

In diesem Thema

  • Vorbereitungen:

    Empfehlungen

    Sicherheit

  • Löschen oder Deaktivieren eines DML-Triggers mit:

    SQL Server Management Studio

    Transact-SQL

Vorbereitungen

Empfehlungen

  • Wenn ein Trigger gelöscht wird, wird er aus der aktuellen Datenbank entfernt. Dies hat jedoch keine Auswirkung auf die Tabelle und Daten, auf denen der Trigger basiert. Durch das Löschen einer Tabelle werden automatisch alle Trigger für die Tabelle gelöscht.

  • Ein Trigger wird standardmäßig aktiviert, wenn er erstellt wird.

  • Durch das Deaktivieren wird ein Trigger nicht gelöscht. Der Trigger ist weiterhin als Objekt in der aktuellen Datenbank vorhanden. Ein deaktivierter Trigger wird jedoch nicht ausgelöst, wenn eine INSERT-, UPDATE- oder DELETE-Anweisung ausgeführt wird, für die er programmiert war. Deaktivierte Trigger können erneut aktiviert werden. Durch das Aktivieren eines Triggers wird dieser nicht neu erstellt. Der Trigger wird auf die gleiche Weise ausgelöst wie bei seiner ursprünglichen Erstellung.

Sicherheit

Berechtigungen

Zum Löschen eines DML-Triggers ist die ALTER-Berechtigung für die Tabelle oder Sicht erforderlich, in der der Trigger definiert ist.

Zum Deaktivieren oder Aktivieren eines DML-Triggers muss ein Benutzer mindestens die ALTER-Berechtigung für die Tabelle oder Sicht besitzen, für die der Trigger erstellt wurde.

Pfeilsymbol, dass mit dem Link "Zurück zum Anfang" verwendet wird[Top]

Verwendung von SQL Server Management Studio

So löschen Sie einen DML-Trigger

  1. Stellen Sie im Objekt-Explorer eine Verbindung mit einer Instanz von Database Engine (Datenbankmodul) her, und erweitern Sie dann diese Instanz.

  2. Erweitern Sie die gewünschte Datenbank, Tabellen und dann die Tabelle, die den zu löschenden Trigger enthält.

  3. Erweitern Sie Trigger, klicken Sie mit der rechten Maustaste auf den zu löschenden Trigger, und klicken Sie dann auf Löschen.

  4. Überprüfen Sie im Dialogfeld Objekt löschen, ob der richtige Trigger ausgewählt ist, und klicken Sie dann auf OK.

So deaktivieren und aktivieren Sie einen DML-Trigger

  1. Stellen Sie im Objekt-Explorer eine Verbindung mit einer Instanz von Database Engine (Datenbankmodul) her, und erweitern Sie dann diese Instanz.

  2. Erweitern Sie die gewünschte Datenbank, Tabellen und dann die Tabelle, die den zu deaktivierenden Trigger enthält.

  3. Erweitern Sie Trigger, klicken Sie mit der rechten Maustaste auf den zu deaktivierenden Trigger, und klicken Sie dann auf Deaktivieren.

  4. Um den Trigger zu aktivieren, klicken Sie auf Aktivieren.

Pfeilsymbol, dass mit dem Link "Zurück zum Anfang" verwendet wird[Top]

Verwendung von Transact-SQL

So löschen Sie einen DML-Trigger

  1. Stellen Sie eine Verbindung mit dem Database Engine (Datenbankmodul) her.

  2. Klicken Sie in der Standardleiste auf Neue Abfrage.

  3. Kopieren Sie die folgenden Beispiele, und fügen Sie sie in das Abfrage-Fenster ein. Führen Sie die CREATE TRIGGER-Anweisung aus, um den Sales.bonus_reminder-Trigger zu erstellen. Führen Sie die DROP TRIGGER-Anweisung aus, um den Trigger zu löschen.

--Create the trigger.
USE AdventureWorks2012;
GO
IF OBJECT_ID(N'Sales.bonus_reminder', N'TR') IS NOT NULL
    DROP TRIGGER Sales.bonus_reminder;
GO
CREATE TRIGGER Sales.bonus_reminder
ON Sales.SalesPersonQuotaHistory
WITH ENCRYPTION
AFTER INSERT, UPDATE 
AS RAISERROR ('Notify Compensation', 16, 10);
GO

--Delete the trigger.
USE AdventureWorks2012;
GO
IF OBJECT_ID ('Sales.bonus_reminder', 'TR') IS NOT NULL
   DROP TRIGGER Sales.bonus_reminder;
GO

So deaktivieren und aktivieren Sie einen DML-Trigger

  1. Stellen Sie eine Verbindung mit dem Database Engine (Datenbankmodul) her.

  2. Klicken Sie in der Standardleiste auf Neue Abfrage.

  3. Kopieren Sie die folgenden Beispiele, und fügen Sie sie in das Abfrage-Fenster ein. Führen Sie die CREATE TRIGGER-Anweisung aus, um den Sales.bonus_reminder-Trigger zu erstellen. Führen Sie die DISABLE TRIGGER- und die ENABLE TRIGGER-Anweisungen aus, um den Trigger zu deaktivieren und zu aktivieren.

--Create the trigger.
USE AdventureWorks2012;
GO
IF OBJECT_ID(N'Sales.bonus_reminder', N'TR') IS NOT NULL
    DROP TRIGGER Sales.bonus_reminder;
GO
CREATE TRIGGER Sales.bonus_reminder
ON Sales.SalesPersonQuotaHistory
WITH ENCRYPTION
AFTER INSERT, UPDATE 
AS RAISERROR ('Notify Compensation', 16, 10);
GO

--Disable the trigger.
USE AdventureWorks2012;
GO
DISABLE TRIGGER Sales.bonus_reminder ON Sales.SalesPersonQuotaHistory;
GO

--Enable the trigger.
USE AdventureWorks2012;
GO
ENABLE TRIGGER Sales.bonus_reminder ON Sales.SalesPersonQuotaHistory;
GO

Pfeilsymbol, dass mit dem Link "Zurück zum Anfang" verwendet wird[Top]

Siehe auch

Verweis

ALTER TRIGGER (Transact-SQL)

CREATE TRIGGER (Transact-SQL)

DROP TRIGGER (Transact-SQL)

ENABLE TRIGGER (Transact-SQL)

DISABLE TRIGGER (Transact-SQL)

EVENTDATA (Transact-SQL)

sp_help (Transact-SQL)

sp_helptrigger (Transact-SQL)

sys.triggers (Transact-SQL)

sys.trigger_events (Transact-SQL)

sys.sql_modules (Transact-SQL)

sys.assembly_modules (Transact-SQL)

sys.server_triggers (Transact-SQL)

sys.server_trigger_events (Transact-SQL)

sys.server_sql_modules (Transact-SQL)

sys.server_assembly_modules (Transact-SQL)

Konzepte

Abrufen von Informationen zu DML-Triggern