Delen via


DML-triggers verwijderen of uitschakelen

van toepassing op:SQL ServerAzure SQL DatabaseAzure SQL Managed Instance

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.

In Dit Onderwerp

Voordat u begint

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 wordt echter niet geactiveerd wanneer een INSERT-, UPDATE- of DELETE-instructie waarop deze is geprogrammeerd, 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.

Veiligheid

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 instructie CREATE TRIGGER uit om de Sales.bonus_reminder-trigger te maken. Als u de trigger wilt verwijderen, voert u 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 instructie CREATE TRIGGER uit om de Sales.bonus_reminder-trigger te maken. Als u de trigger wilt uitschakelen en inschakelen, voert u respectievelijk de DISABLE TRIGGER en ENABLE TRIGGER instructies 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  

Zie ook

ALTER TRIGGER (Transact-SQL)
CREATE TRIGGER (Transact-SQL)
DROP TRIGGER (Transact-SQL)
TRIGGER INSCHAKELEN (Transact-SQL)
TRIGGER UITSCHAKELEN (Transact-SQL)
EVENTDATA (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)