Freigeben über


Ändern oder Umbenennen 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 umbenennen.

In diesem Thema

  • Vorbereitungen:

    Einschränkungen

    Empfehlungen

    Sicherheit

  • Ändern oder Umbenennen eines DML-Triggers mit:

    SQL Server Management Studio

    Transact-SQL

Vorbereitungen

Einschränkungen

  • Wenn Sie einen Trigger umbenennen, muss der Trigger in der aktuellen Datenbank vorhanden sein, und der neue Name muss den Regeln für Bezeichner entsprechen.

Empfehlungen

  • Es wird davon abgeraten, die gespeicherte Prozedur sp_rename zum Umbenennen eines Triggers zu verwenden. Wenn Sie Teile eines Objektnamens ändern, können Skripts und gespeicherte Prozeduren funktionsunfähig werden. Durch das Umbenennen eines Triggers wird der entsprechende Objektname in der definition-Spalte der sys.sql_modules-Katalogsicht nicht geändert. Es wird empfohlen, den Trigger stattdessen zu löschen und neu zu erstellen.

  • Wenn Sie den Namen eines Objekts ändern, auf das ein DML-Trigger verweist, müssen Sie den Trigger so ändern, dass sein Text den neuen Namen widerspiegelt. Bevor Sie ein Objekt umbenennen, sollten Sie daher erst die Abhängigkeiten des Objekts anzeigen, um feststellen zu können, ob Trigger von der beabsichtigten Änderung betroffen sind.

  • Sie können einen DML-Trigger auch ändern, um seine Definition zu verschlüsseln.

  • Sie können die Abhängigkeiten eines Triggers mithilfe von SQL Server Management Studio oder mit der folgenden Funktion und den Katalogsichten anzeigen:

Sicherheit

Berechtigungen

Zum Ändern eines DML-Triggers ist eine ALTER-Berechtigung für die Tabelle oder Sicht erforderlich, für die der Trigger definiert ist.

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

Verwendung von SQL Server Management Studio

So ändern 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 ändernden Trigger enthält.

  3. Erweitern Sie Trigger, klicken Sie mit der rechten Maustaste auf den zu ändernden Trigger, und klicken Sie anschließend auf Ändern.

  4. Ändern Sie den Trigger, und klicken Sie dann auf Ausführen.

So benennen Sie einen DML-Trigger um

  1. Löschen Sie den Trigger, den Sie umbenennen möchten.

  2. Erstellen Sie den Trigger neu, und geben Sie dabei den neuen Namen an.

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

Verwendung von Transact-SQL

So ändern Sie einen Trigger mit ALTER 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 Abfragefenster ein. Führen Sie das erste Beispiel aus, um einen DML-Trigger zu erstellen, der eine benutzerdefinierte Meldung an den Client ausgibt, wenn ein Benutzer versucht, Daten in der SalesPersonQuotaHistory-Tabelle hinzuzufügen oder zu ändern. Führen Sie die ALTER TRIGGER-Anweisung aus, um den Trigger so zu ändern, dass er nur bei INSERT-Aktivitäten ausgelöst wird. Dieser Trigger ist hilfreich, da er den Benutzer beim Aktualisieren oder Einfügen von Zeilen in die Tabelle daran erinnert, dass auch die Abteilung Compensation benachrichtigt werden muss.

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

USE AdventureWorks2012;
GO
ALTER TRIGGER Sales.bonus_reminder
ON Sales.SalesPersonQuotaHistory
AFTER INSERT
AS RAISERROR ('Notify Compensation', 16, 10);
GO

So benennen Sie einen Trigger mit DROP TRIGGER und ALTER TRIGGER um

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

  2. Klicken Sie in der Standardleiste auf Neue Abfrage.

  3. Kopieren Sie das folgende Beispiel, fügen Sie es in das Abfragefenster ein, und klicken Sie auf Ausführen. In diesem Beispiel werden die DROP TRIGGER- und ALTER TRIGGER-Anweisungen verwendet, um den Sales.bonus_reminder-Trigger in Sales.bonus_reminder_2 umzubenennen.

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_2
ON Sales.SalesPersonQuotaHistory
WITH ENCRYPTION
AFTER INSERT, UPDATE 
AS RAISERROR ('Notify Compensation', 16, 10);
GO

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

Siehe auch

Verweis

CREATE TRIGGER (Transact-SQL)

DROP TRIGGER (Transact-SQL)

ENABLE TRIGGER (Transact-SQL)

DISABLE TRIGGER (Transact-SQL)

EVENTDATA (Transact-SQL)

sp_rename (Transact-SQL)

ALTER TRIGGER (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