Eliminare o disabilitare trigger DML
In questo argomento viene descritto come eliminare o disabilitare un trigger DML in SQL Server 2012 tramite SQL Server Management Studio o Transact-SQL.
Contenuto dell'argomento
Prima di iniziare:
Consigli
Sicurezza
Per eliminare o disabilitare un trigger DML tramite:
SQL Server Management Studio
Transact-SQL
Prima di iniziare
Consigli
Un trigger eliminato viene rimosso dal database corrente, ma la tabella e i dati su cui si basa il trigger non subiscono alcun impatto. L'eliminazione di una tabella comporta automaticamente l'eliminazione di tutti i trigger della tabella.
Per impostazione predefinita, un trigger viene abilitato quando viene creato.
La disabilitazione di un trigger non ne comporta l'eliminazione. Il trigger continua a esistere come oggetto nel database corrente. Il trigger, tuttavia, non viene attivato quando viene eseguita qualsiasi istruzione INSERT, UPDATE o DELETE in cui è stato programmato. I trigger disabilitati possono essere riabilitati. L'abilitazione di un trigger non comporta la sua creazione ex-novo. Il trigger viene attivato allo stesso modo in cui è stato creato in origine.
Sicurezza
Autorizzazioni
Per l'eliminazione di un trigger DML è richiesta l'autorizzazione ALTER per la tabella o la vista in cui è definito il trigger.
Per disabilitare o abilitare un trigger DML, è necessario disporre almeno dell'autorizzazione ALTER per la tabella o la vista per cui il trigger è stato creato.
[Top]
Utilizzo di SQL Server Management Studio
Per eliminare un trigger DML
In Esplora oggetti connettersi a un'istanza del Motore di database, quindi espanderla.
Espandere il database desiderato, espandere Tabelle, quindi espandere la tabella che contiene il trigger da eliminare.
Espandere Trigger, fare clic con il pulsante destro del trigger da eliminare, quindi fare clic su Elimina.
Nella finestra di dialogo Elimina oggetto, verificare il trigger da eliminare, quindi fare clic su OK.
Per abilitare e disabilitare un trigger DML
In Esplora oggetti connettersi a un'istanza del Motore di database, quindi espanderla.
Espandere il database desiderato, espandere Tabelle, quindi espandere la tabella che contiene il trigger da disabilitare.
Espandere Trigger, fare clic con il pulsante destro del trigger da disabilitare, quindi fare clic su Disabilita.
Per abilitare il trigger, fare clic su Abilita.
[Top]
Utilizzo di Transact-SQL
Per eliminare un trigger DML
Connettersi al Motore di database.
Dalla barra Standard fare clic su Nuova query.
Copiare e incollare gli esempi seguenti nella finestra delle query. Per creare il trigger Sales.bonus_reminder, eseguire l'istruzione CREATE TRIGGER. Per eliminare il trigger, eseguire l'istruzione DROP TRIGGER.
--Create the trigger.
USE AdventureWorks2012;
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 AdventureWorks2012;
GO
IF OBJECT_ID ('Sales.bonus_reminder', 'TR') IS NOT NULL
DROP TRIGGER Sales.bonus_reminder;
GO
Per abilitare e disabilitare un trigger DML
Connettersi al Motore di database.
Dalla barra Standard fare clic su Nuova query.
Copiare e incollare gli esempi seguenti nella finestra delle query. Per creare il trigger Sales.bonus_reminder, eseguire l'istruzione CREATE TRIGGER. Per disabilitare e abilitare il trigger, eseguire le istruzioni DISABLE TRIGGER e ENABLE TRIGGER, rispettivamente.
--Create the trigger.
USE AdventureWorks2012;
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 AdventureWorks2012;
GO
DISABLE TRIGGER Sales.bonus_reminder ON Sales.SalesPersonQuotaHistory;
GO
--Enable the trigger.
USE AdventureWorks2012;
GO
ENABLE TRIGGER Sales.bonus_reminder ON Sales.SalesPersonQuotaHistory;
GO
[Top]
Vedere anche
Riferimento
DISABLE TRIGGER (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)