Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
In diesem Thema wird beschrieben, wie Sie einen DML-Trigger in SQL Server 2014 mithilfe von SQL Server Management Studio oder Transact-SQL ändern oder umbenennen.
In diesem Themenbereich
Bevor Sie beginnen:
So ändern oder benennen Sie einen DML-Trigger um, indem Sie Folgendes verwenden:
Bevor Sie beginnen
Einschränkungen und Beschränkungen
- Wenn Sie einen Trigger umbenennen, muss sich der Trigger in der aktuellen Datenbank befinden, und der neue Name muss den Regeln für Bezeichner entsprechen.
Empfehlungen
Es wird empfohlen, die sp_rename gespeicherten Prozedur nicht 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 Name des entsprechenden Objektnamens in der Definitionsspalte der Katalogansicht sys.sql_modules nicht geändert. Es wird empfohlen, stattdessen den Trigger abzulegen und neu zu erstellen.
Wenn Sie den Namen eines Objekts ändern, auf das durch einen DML-Trigger verwiesen wird, müssen Sie den Auslöser so ändern, dass dessen Text den neuen Namen wiedergibt. Zeigen Sie daher vor dem Umbenennen eines Objekts zuerst die Abhängigkeiten des Objekts an, um zu bestimmen, ob von der vorgeschlagenen Änderung alle Auslöser betroffen sind.
Ein DML-Trigger kann auch geändert werden, um seine Definition zu verschlüsseln.
Um die Abhängigkeiten eines Triggers anzuzeigen, können Sie SQL Server Management Studio oder die folgenden Funktions- und Katalogansichten verwenden:
Sicherheit
Erlaubnisse
Zum Ändern eines DML-Triggers ist die ALTER-Berechtigung für die Tabelle oder Ansicht 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, erweitern Sie Tabellen, und erweitern Sie dann die Tabelle, die den Trigger enthält, den Sie ändern möchten.
Erweitern Sie Trigger, klicken Sie mit der rechten Maustaste auf den zu ändernden Trigger, und klicken Sie dann 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 erneut, und geben Sie den neuen Namen an.
Verwenden von Transact-SQL
So ändern Sie einen Trigger mithilfe von ALTER TRIGGER
Verbinden Sie sich mit der Datenbank-Engine.
Klicken Sie auf der Standardleiste auf Neue Abfrage.
Kopieren Sie die folgenden Beispiele, und fügen Sie sie in die Abfrage ein. Führen Sie das erste Beispiel aus, um einen DML-Trigger zu erstellen, der eine benutzerdefinierte Nachricht an den Client druckt, wenn ein Benutzer versucht, Daten in der
SalesPersonQuotaHistoryTabelle hinzuzufügen oder zu ändern. Führen Sie die ALTER TRIGGER-Anweisung aus, um den Trigger so zu ändern, dass er nur fürINSERTAktivitäten ausgelöst wird. Dieser Trigger ist hilfreich, da er den Benutzer daran erinnert, dass Zeilen in diese Tabelle aktualisiert oder eingefügt werden, um dieCompensationAbteilung ebenfalls zu benachrichtigen.
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
Verbinden Sie sich mit der Datenbank-Engine.
Klicken Sie auf 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_reminderTrigger umzubenennenSales.bonus_reminder_2.
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
Siehe auch
CREATE TRIGGER (Transact-SQL)
DROP TRIGGER (Transact-SQL)
TRIGGER AKTIVIEREN (Transact-SQL)
TRIGGER DEAKTIVIEREN (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)