Condividi tramite


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.

Icona freccia utilizzata con il collegamento Torna all'inizio[Top]

Utilizzo di SQL Server Management Studio

Per eliminare un trigger DML

  1. In Esplora oggetti connettersi a un'istanza del Motore di database, quindi espanderla.

  2. Espandere il database desiderato, espandere Tabelle, quindi espandere la tabella che contiene il trigger da eliminare.

  3. Espandere Trigger, fare clic con il pulsante destro del trigger da eliminare, quindi fare clic su Elimina.

  4. Nella finestra di dialogo Elimina oggetto, verificare il trigger da eliminare, quindi fare clic su OK.

Per abilitare e disabilitare un trigger DML

  1. In Esplora oggetti connettersi a un'istanza del Motore di database, quindi espanderla.

  2. Espandere il database desiderato, espandere Tabelle, quindi espandere la tabella che contiene il trigger da disabilitare.

  3. Espandere Trigger, fare clic con il pulsante destro del trigger da disabilitare, quindi fare clic su Disabilita.

  4. Per abilitare il trigger, fare clic su Abilita.

Icona freccia utilizzata con il collegamento Torna all'inizio[Top]

Utilizzo di Transact-SQL

Per eliminare un trigger DML

  1. Connettersi al Motore di database.

  2. Dalla barra Standard fare clic su Nuova query.

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

  1. Connettersi al Motore di database.

  2. Dalla barra Standard fare clic su Nuova query.

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

Icona freccia utilizzata con il collegamento Torna all'inizio[Top]

Vedere anche

Riferimento

ALTER TRIGGER (Transact-SQL)

CREATE TRIGGER (Transact-SQL)

DROP TRIGGER (Transact-SQL)

ENABLE TRIGGER (Transact-SQL)

DISABLE TRIGGER (Transact-SQL)

EVENTDATA (Transact-SQL)

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)

Concetti

Ottieni informazioni sui trigger DML