Odstranění nebo zakázání triggerů DML
platí pro:SQL Server
Azure SQL Database
azure 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:
Odstranění nebo zakázání triggeru DML pomocí:
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
V Průzkumník objektů, připojte se k instanci Database Engine a poté rozbalte tuto instanci.
Rozbalte požadovanou databázi, rozbalte Tabulkya potom rozbalte tabulku obsahující trigger, který chcete odstranit.
Rozbalte Triggery, klikněte pravým tlačítkem myši na trigger, který chcete odstranit, a poté klikněte na Odstranit.
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
V Průzkumníku objektůse připojte k instanci databázového engine a následně tuto instanci rozbalte.
Rozbalte požadovanou databázi, rozbalte Tabulkya potom rozbalte tabulku obsahující trigger, který chcete zakázat.
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.
Pokud chcete trigger povolit, klikněte na Povolit.
Použití Transact-SQL
Odstranění triggeru DML
Připojte se k databázovému stroji.
Na panelu Standard klikněte na Nový dotaz.
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
Připojte se k databázovému stroji.
Na panelu Standard klikněte na Nový dotaz.
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)