DML-triggers wijzigen of de naam ervan wijzigen
van toepassing op:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Dit artikel beschrijft hoe u een DML-trigger in SQL Server kunt wijzigen of hernoemen met behulp van SQL Server Management Studio of Transact-SQL.
Beperkingen
Wanneer u de naam van een trigger wijzigt, moet de trigger zich in de huidige database bevinden en moet de nieuwe naam voldoen aan de regels voor id's.
Aanbevelingen
Vermijd het gebruik van de sp_rename opgeslagen procedure om de naam van een trigger te wijzigen. Als u een deel van een objectnaam wijzigt, kunnen scripts en opgeslagen procedures worden onderbroken. Als u de naam van een trigger wijzigt, wordt de naam van de bijbehorende objectnaam niet gewijzigd in de definitiekolom van de sys.sql_modules catalogusweergave. U wordt aangeraden in plaats daarvan de trigger te verwijderen en opnieuw te maken.
Als u de naam van een object waarnaar wordt verwezen door een DML-trigger wijzigt, moet u de trigger wijzigen zodat de tekst de nieuwe naam weerspiegelt. Voordat u de naam van een object wijzigt, geeft u daarom eerst de afhankelijkheden van het object weer om te bepalen of de voorgestelde wijziging van invloed is op triggers.
Een DML-trigger kan ook worden gewijzigd om de definitie te versleutelen.
Als u de afhankelijkheden van een trigger wilt weergeven, kunt u SQL Server Management Studio of de volgende functie- en catalogusweergaven gebruiken:
Machtigingen
Als u een DML-trigger wilt wijzigen, hebt u ALTER
-rechten nodig voor de tabel of weergave waarvoor de trigger is gedefinieerd.
SQL Server Management Studio gebruiken
Een DML-trigger wijzigen
Maak in Objectverkennerverbinding met een exemplaar van de Database Engine en vouw dan dat exemplaar uit.
Vouw de gewenste database uit, vouw tabellenuit en vouw vervolgens de tabel uit die de trigger bevat die u wilt wijzigen.
Vouw triggersuit, klik met de rechtermuisknop op de trigger die u wilt wijzigen en selecteer vervolgens Wijzigen.
Wijzig de trigger en selecteer vervolgens Uitvoeren.
De naam van een DML-trigger wijzigen
- de DML-trigger verwijderen of uitschakelen die u de naam wilt wijzigen.
- Maak de nieuwe DML-triggeren geef de nieuwe naam op.
Gebruik Transact-SQL
Een trigger wijzigen met ALTER TRIGGER
Maak verbinding met de database-engine.
Selecteer in de standaardbalk Nieuwe query.
Kopieer en plak het volgende voorbeeld in de query. Voer het eerste voorbeeld uit om een DML-trigger te maken waarmee een door de gebruiker gedefinieerd bericht naar de client wordt afgedrukt wanneer een gebruiker probeert gegevens toe te voegen aan of te wijzigen in de
SalesPersonQuotaHistory
tabel. Voer de opdracht ALTER TRIGGER uit om de trigger te wijzigen zodat deze alleen wordt geactiveerd bijINSERT
-activiteiten. Deze trigger is handig omdat de gebruiker eraan herinnert dat rijen in deze tabel worden bijgewerkt of ingevoegd om ook deCompensation
afdeling op de hoogte te stellen.Maak een trigger.
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
Wijzig de trigger.
USE AdventureWorks2022; GO ALTER TRIGGER Sales.bonus_reminder ON Sales.SalesPersonQuotaHistory AFTER INSERT AS RAISERROR ('Notify Compensation', 16, 10); GO
De naam van een trigger wijzigen met DROP TRIGGER en CREATE TRIGGER
Maak verbinding met de database-engine.
Selecteer in de standaardbalk Nieuwe query.
Kopieer en plak het volgende voorbeeld in het queryvenster en selecteer uitvoeren. In dit voorbeeld worden de DROP TRIGGER- en CREATE TRIGGER instructies gebruikt om de naam van de
Sales.bonus_reminder
-trigger te wijzigen inSales.bonus_reminder_2
.
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
Verwante inhoud
- CREATE TRIGGER (Transact-SQL)
- DROP TRIGGER (Transact-SQL)
- TRIGGER INSCHAKELEN (Transact-SQL)
- TRIGGER UITSCHAKELEN (Transact-SQL)
- EVENTDATA (Transact-SQL)
- sp_rename (Transact-SQL)
- ALTER TRIGGER (Transact-SQL)
- Informatie over DML-triggers ophalen
- 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)