Freigeben über


Löschen oder Deaktivieren von DML-Triggern

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

In diesem Themenbereich

Bevor Sie beginnen

Empfehlungen

  • Wenn ein Trigger gelöscht wird, wird er aus der aktuellen Datenbank gelöscht. Die Tabelle und die Daten, auf denen sie basieren, sind nicht betroffen. Durch das Löschen einer Tabelle werden automatisch alle Auslöser in der Tabelle gelöscht.

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

  • Das Deaktivieren eines Triggers löscht ihn nicht. Der Auslöser ist weiterhin als Objekt in der aktuellen Datenbank vorhanden. Der Trigger wird jedoch nicht ausgelöst, wenn eine INSERT-, UPDATE- oder DELETE-Anweisung, für die sie programmiert wurde, ausgeführt wird. Trigger, die deaktiviert sind, können erneut aktiviert werden. Durch aktivieren eines Triggers wird er nicht erneut erstellt. Der Trigger wird auf die gleiche Weise ausgelöst wie bei der ursprünglichen Erstellung.

Sicherheit

Erlaubnisse

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

Um einen DML-Trigger zu deaktivieren oder zu aktivieren, muss ein Benutzer mindestens über die ALTER-Berechtigung für die Tabelle oder Ansicht verfügen, für die der Trigger erstellt wurde.

Verwendung von SQL Server Management Studio

So löschen Sie einen DML-Trigger

  1. Stellen Sie im Objekt-Explorer eine Verbindung mit einer Instanz der Datenbank-Engine her, und erweitern Sie dann diese Instanz.

  2. Erweitern Sie die gewünschte Datenbank, erweitern Sie Tabellen, und erweitern Sie dann die Tabelle, die den Trigger enthält, den Sie löschen möchten.

  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" den zu löschenden Trigger, 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 der Datenbank-Engine her, und erweitern Sie dann diese Instanz.

  2. Erweitern Sie die gewünschte Datenbank, erweitern Sie Tabellen, und erweitern Sie dann die Tabelle, die den Trigger enthält, den Sie deaktivieren möchten.

  3. Erweitern Sie Trigger, klicken Sie mit der rechten Maustaste auf den Trigger, um den Zu deaktivieren, und klicken Sie dann auf "Deaktivieren".

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

Verwenden von Transact-SQL

So löschen Sie einen DML-Trigger

  1. Verbinden Sie sich mit der Datenbank-Engine.

  2. Klicken Sie auf der Standardleiste auf Neue Abfrage.

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

--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. Verbinden Sie sich mit der Datenbank-Engine.

  2. Klicken Sie auf der Standardleiste auf Neue Abfrage.

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

--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  

Siehe auch

ALTER TRIGGER (Transact-SQL)
CREATE TRIGGER (Transact-SQL)
DROP TRIGGER (Transact-SQL)
TRIGGER AKTIVIEREN (Transact-SQL)
TRIGGER DEAKTIVIEREN (Transact-SQL)
EVENTDATA (Transact-SQL)
Abrufen von Informationen zu DML-Triggern
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)