DML-triggers verwijderen of uitschakelen

Van toepassing op:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceSQL-database in Microsoft Fabric

In dit onderwerp wordt beschreven hoe u een DML-trigger in SQL Server verwijdert of uitschakelt met behulp van SQL Server Management Studio of Transact-SQL.

Aanbevelingen

  • Wanneer een trigger wordt verwijderd, wordt deze verwijderd uit de huidige database. De tabel en de gegevens waarop deze zijn gebaseerd, worden niet beïnvloed. Als u een tabel verwijdert, worden alle triggers in de tabel automatisch verwijderd.

  • Een trigger is standaard ingeschakeld wanneer deze wordt gemaakt.

  • Als u een trigger uitschakelt, wordt deze niet verwijderd. De trigger bestaat nog steeds als een object in de huidige database. De trigger zal echter niet afgaan wanneer een , INSERTUPDATE, of DELETE statement waarop het geprogrammeerd is, wordt uitgevoerd. Triggers die zijn uitgeschakeld, kunnen opnieuw worden geactiveerd. Als u een trigger inschakelt, wordt deze niet opnieuw gemaakt. De trigger wordt op dezelfde manier geactiveerd als toen deze oorspronkelijk werd gemaakt.

Machtigingen

Als u een DML-trigger wilt verwijderen, is alter-machtiging vereist voor de tabel of weergave waarvoor de trigger is gedefinieerd.

Als u een DML-trigger wilt uitschakelen of inschakelen, moet een gebruiker minimaal alter-machtigingen hebben voor de tabel of weergave waarop de trigger is gemaakt.

SQL Server Management Studio gebruiken

Een DML-trigger verwijderen

  1. Maak in Objectverkennerverbinding met een exemplaar van de Database Engine en vouw vervolgens dat exemplaar uit.

  2. Vouw de gewenste database uit, vouw tabellenuit en vouw vervolgens de tabel uit die de trigger bevat die u wilt verwijderen.

  3. Vouw Triggersuit, klik met de rechtermuisknop op de trigger om te verwijderen en klik vervolgens op Verwijderen.

  4. Controleer in het dialoogvenster Object verwijderen de trigger om te verwijderen en klik vervolgens op OK.

Een DML-trigger uitschakelen en inschakelen

  1. Maak in Objectverkennerverbinding met een exemplaar van de Database Engine en vouw vervolgens dat exemplaar uit.

  2. Vouw de gewenste database uit, vouw Tabellenuit en vouw vervolgens de tabel uit die de trigger bevat die u wilt uitschakelen.

  3. Vouw Triggersuit, klik met de rechtermuisknop op de trigger om deze uit te schakelen en klik vervolgens op Uitschakelen.

  4. Als u de trigger wilt inschakelen, klikt u op inschakelen.

Transact-SQL gebruiken

Een DML-trigger verwijderen

  1. Maak verbinding met de database-engine.

  2. Klik in de standaardbalk op Nieuwe query.

  3. Kopieer en plak de volgende voorbeelden in het queryvenster. Voer de CREATE TRIGGER instructie uit om de Sales.bonus_reminder trigger te creëren. Om de trigger te verwijderen, voer je de DROP TRIGGER instructie uit.

--Create the 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  
  
--Delete the trigger.  
USE AdventureWorks2022;  
GO  
IF OBJECT_ID ('Sales.bonus_reminder', 'TR') IS NOT NULL  
   DROP TRIGGER Sales.bonus_reminder;  
GO  
  

Een DML-trigger uitschakelen en inschakelen

  1. Maak verbinding met de database-engine.

  2. Klik in de standaardbalk op Nieuwe query.

  3. Kopieer en plak de volgende voorbeelden in het queryvenster. Voer de CREATE TRIGGER instructie uit om de Sales.bonus_reminder trigger te creëren. Om de trigger uit te schakelen en in te schakelen, voert u respectievelijk de DISABLE TRIGGER en-instructies ENABLE TRIGGER uit.

--Create the 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  
  
--Disable the trigger.  
USE AdventureWorks2022;  
GO  
DISABLE TRIGGER Sales.bonus_reminder ON Sales.SalesPersonQuotaHistory;  
GO  
  
--Enable the trigger.  
USE AdventureWorks2022;  
GO  
ENABLE TRIGGER Sales.bonus_reminder ON Sales.SalesPersonQuotaHistory;  
GO