Ändern oder Umbenennen von DML-Triggern
Gilt für: SQL Server Azure SQL-Datenbank Azure SQL Managed Instance
Dieses Thema beschreibt, wie Sie einen DML-Trigger in SQL Server mithilfe von SQL Server Management Studio oder Transact-SQL ändern oder umbenennen können.
In diesem Thema
Vorbereitungen:
Ändern oder Umbenennen eines DML-Triggers mit:
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 Bezeichnerentsprechen.
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.
Verwendung von SQL Server Management Studio
So ändern Sie einen DML-Trigger
Stellen Sie im Objekt-Explorer eine Verbindung mit einer Instanz der Datenbank-Engine her, und erweitern Sie dann diese Instanz.
Erweitern Sie die gewünschte Datenbank, Tabellenund dann die Tabelle, die den zu ändernden Trigger enthält.
Erweitern Sie Trigger, klicken Sie mit der rechten Maustaste auf den zu ändernden Trigger, und klicken Sie anschließend auf Ändern.
Ändern Sie den Trigger, und klicken Sie dann auf Ausführen.
So benennen Sie einen DML-Trigger um
Löschen Sie den Trigger , den Sie umbenennen möchten.
Erstellen Sie den Trigger neu, und geben Sie dabei den neuen Namen an.
Verwenden von Transact-SQL
So ändern Sie einen Trigger mit ALTER TRIGGER
Stellen Sie eine Verbindung mit dem Datenbank-Engineher.
Klicken Sie in der Standardleiste auf Neue Abfrage.
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 beiINSERT
-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 AbteilungCompensation
benachrichtigt werden muss.
USE AdventureWorks2022;
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 AdventureWorks2022;
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
Stellen Sie eine Verbindung mit dem Datenbank-Engineher.
Klicken Sie in der Standardleiste auf Neue Abfrage.
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 inSales.bonus_reminder_2
umzubenennen.
USE AdventureWorks2022;
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
Weitere Informationen
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)
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)
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Tickets als Feedbackmechanismus für Inhalte auslaufen lassen und es durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unter:Einreichen und Feedback anzeigen für