Sdílet prostřednictvím


Odstranění nebo zakázání triggerů DML

platí pro:SQL ServerAzure SQL Databaseazure SQL Managed Instance

Toto téma popisuje, jak odstranit nebo zakázat trigger DML na SQL Serveru pomocí aplikace SQL Server Management Studio nebo Transact-SQL.

v tomto tématu

Než začnete

Doporučení

  • Když se aktivační událost odstraní, odstraní se z aktuální databáze. Tabulka a data, na kterých jsou založená, nejsou ovlivněny. Odstranění tabulky automaticky odstraní všechny triggery v tabulce.

  • Trigger je ve výchozím nastavení povolený při vytvoření.

  • Zakázání triggeru ho nezahodí. Trigger stále existuje jako objekt v aktuální databázi. Aktivační událost se však nespustí při spuštění žádného příkazu INSERT, UPDATE nebo DELETE, na kterém byla naprogramována. Triggery, které jsou zakázané, je možné znovu aktivovat. Povolení spouštěče ho znovu nevytvoří. Trigger se aktivuje stejným způsobem jako při jeho původním vytvoření.

Bezpečnost

Dovolení

K odstranění triggeru DML vyžaduje oprávnění ALTER v tabulce nebo zobrazení, na kterém je aktivační událost definována.

Pokud chcete zakázat nebo povolit trigger DML, musí mít uživatel minimálně oprávnění ALTER v tabulce nebo zobrazení, na kterém byl trigger vytvořen.

Použití aplikace SQL Server Management Studio

Odstranění triggeru DML

  1. V Průzkumník objektů, připojte se k instanci Database Engine a poté rozbalte tuto instanci.

  2. Rozbalte požadovanou databázi, rozbalte Tabulkya potom rozbalte tabulku obsahující trigger, který chcete odstranit.

  3. Rozbalte Triggery, klikněte pravým tlačítkem myši na trigger, který chcete odstranit, a poté klikněte na Odstranit.

  4. V dialogovém okně Odstranit objekt ověřte podmínku pro odstranění a poté klikněte na OK.

Zakázání a povolení triggeru DML

  1. V Průzkumníku objektůse připojte k instanci databázového engine a následně tuto instanci rozbalte.

  2. Rozbalte požadovanou databázi, rozbalte Tabulkya potom rozbalte tabulku obsahující trigger, který chcete zakázat.

  3. Rozbalte triggery, klikněte pravým tlačítkem myši na trigger, který chcete zakázat, a potom klepněte na tlačítko Zakázat.

  4. Pokud chcete trigger povolit, klikněte na Povolit.

Použití Transact-SQL

Odstranění triggeru DML

  1. Připojte se k databázovému stroji.

  2. Na panelu Standard klikněte na Nový dotaz.

  3. Zkopírujte a vložte do okna dotazu následující příklady. Spuštěním příkazu CREATE TRIGGER vytvořte trigger Sales.bonus_reminder. Pokud chcete aktivační událost odstranit, spusťte příkaz 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  
  

Zakázání a povolení triggeru DML

  1. Připojte se k databázovému stroji.

  2. Na panelu Standard klikněte na Nový dotaz.

  3. Zkopírujte a vložte do okna dotazu následující příklady. Spuštěním příkazu CREATE TRIGGER vytvořte trigger Sales.bonus_reminder. Pokud chcete trigger zakázat a povolit, spusťte příkazy DISABLE TRIGGER a ENABLE 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  
  
--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  

Viz také

ALTER TRIGGER (Transact-SQL)
CREATE TRIGGER (Transact-SQL)
ODSTRANIT TRIGGER (Transact-SQL)
povolení triggeru (Transact-SQL)
ZAKÁZAT TRIGGER (Transact-SQL)
EVENTDATA (Transact-SQL)
získání informací o triggerech DML
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)