Dela via


Ta bort eller inaktivera DML-utlösare

gäller för:SQL ServerAzure SQL DatabaseAzure SQL Managed Instance

Det här avsnittet beskriver hur du tar bort eller inaktiverar en DML-utlösare i SQL Server med hjälp av SQL Server Management Studio eller Transact-SQL.

i det här avsnittet

Innan du börjar

Rekommendationer

  • När en utlösare tas bort tas den bort från den aktuella databasen. Tabellen och de data som den baseras på påverkas inte. Om du tar bort en tabell tas alla utlösare i tabellen bort automatiskt.

  • En utlösare aktiveras som standard när den skapas.

  • Att inaktivera en utlösare tar inte bort den. Utlösaren finns fortfarande som ett objekt i den aktuella databasen. Utlösaren utlöses dock inte när någon INSERT-, UPDATE- eller DELETE-instruktion som den programmerades för körs. Utlösare som är inaktiverade kan återanvändas. Om du aktiverar en utlösare skapas den inte igen. Utlösaren utlöses på samma sätt som när den ursprungligen skapades.

Säkerhet

Behörigheter

För att ta bort en DML-utlösare krävs ALTER-behörighet i tabellen eller vyn där utlösaren har definierats.

Om du vill inaktivera eller aktivera en DML-utlösare måste en användare minst ha ALTER-behörighet i tabellen eller vyn där utlösaren skapades.

Använda SQL Server Management Studio

Ta bort en DML-utlösare

  1. I Object Exploreransluter du till en instans av databasmotorn och expanderar sedan den instansen.

  2. Expandera den databas som du vill använda, expandera Tabelleroch expandera sedan tabellen som innehåller utlösaren som du vill ta bort.

  3. Expandera Triggers, högerklicka på triggern för att ta bort och klicka sedan på Ta bort.

  4. I dialogrutan Ta bort objekt kontrollerar du utlösaren för att ta bort och klickar sedan på OK.

Inaktivera och aktivera en DML-utlösare

  1. I Object Exploreransluter du till en instans av databasmotorn och expanderar sedan den instansen.

  2. Expandera den databas som du vill använda, expandera Tabelleroch expandera sedan tabellen som innehåller utlösaren som du vill inaktivera.

  3. Expandera Utlösare, högerklicka på utlösaren för att inaktivera den och klicka sedan på Inaktivera.

  4. Om du vill aktivera utlösaren klickar du på Aktivera.

Använda Transact-SQL

Ta bort en DML-utlösare

  1. Anslut till databasmotorn.

  2. I standardfältet klickar du på Ny fråga.

  3. Kopiera och klistra in följande exempel i frågefönstret. Kör instruktionen CREATE TRIGGER för att skapa Sales.bonus_reminder utlösaren. Om du vill ta bort utlösaren kör du instruktionen DROP TRIGGER.

--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  
  

Inaktivera och aktivera en DML-utlösare

  1. Anslut till databasmotorn.

  2. I standardfältet klickar du på Ny fråga.

  3. Kopiera och klistra in följande exempel i frågefönstret. Kör instruktionen CREATE TRIGGER för att skapa Sales.bonus_reminder utlösaren. Om du vill inaktivera och aktivera utlösaren kör du DISABLE TRIGGER respektive ENABLE TRIGGER-instruktioner.

--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  

Se även

ALTER TRIGGER (Transact-SQL)
SKAPA UTLÖSARE (Transact-SQL)
DROP TRIGGER (Transact-SQL)
AKTIVERA AVTRYCKARE (Transact-SQL)
INAKTIVERA UTLÖSARE (Transact-SQL)
EVENTDATA (Transact-SQL)
Hämta information om DML-triggers
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)