Sql server disabilita trigger

Sql server disabilita trigger

Un trigger è una procedura memorizzata eseguita quando si verifica un'azione/evento specifica nel server. Vari tipi di trigger possono essere associati a azioni particolari.

Questo post mira a mostrarti come è possibile disabilitare un trigger esistente in SQL Server. La disabilitazione di un trigger può temporaneamente consentire di eseguire un'azione senza un evento successivo. Questo è molto utile durante la risoluzione dei problemi o si eseguono operazioni di manutenzione sul server.

Creazione di un trigger di prova

Prima di discutere come disabilitare un trigger esistente nel server SQL, iniziamo definendo un semplice trigger per scopi di illustrazione.

Inizia creando un database:

Drop database se esiste local_db;
Crea database local_db;
Usa local_db;


Successivamente, definisci una tabella come mostrato:

Crea database di tabelle (
id int non null Identity (1,1) Key primario,
server_name varchar (50),
server_address varchar (255) non null,
compressione_method varchar (100) predefinito "nessuno",
size_on_disk float non null,
size_ float compresso,
total_records int non null,
Data init_date
);


Quindi, creare un trigger per disabilitare il numero di righe interessate quando si verifica un inserto o elimina.

Crea nostatus trigger
Sui database
Dopo l'inserto, elimina
COME
INIZIO
Imposta Nocount su;
FINE;

SQL Server Disabilita la query di trigger

Fortunatamente, SQL Server ci fornisce un metodo nativo per disabilitare un trigger, come mostrato nella sintassi seguente:

Disabilita trigger [Schema_name . ] trigger_name [, ... n] | TUTTO
Su object_name | Database | Tutto server [; "

Argomenti di query

La query accetta i seguenti parametri:

    1. Schema_name - Questo definisce il nome dello schema su cui risiede il trigger. Il parametro shcema_name non è supportato per i trigger del linguaggio della definizione dei dati o i trigger di accesso.
    2. trigger_name - Il nome del trigger che si desidera disabilitare.
    3. Tutto - questo parametro consente a tutti i trigger definiti nella clausola On contemporaneamente.
    4. object_name - Il nome della tabella o vista su cui risiede il trigger.
    5. Database: specifica l'ambito del trigger DDL.

A seconda della configurazione dell'utente e del server di destinazione, la query di trigger disabilita richiede l'autorizzazione di alterazione sulla tabella o la visualizzazione.

Esempio: disabilitare un trigger DML su una tabella

L'esempio seguente dimostra come disabilitare il trigger nostatus nella tabella dei database.

Disabilita database trigger.nostatus
banche dati;


L'esecuzione dell'istruzione sopra dovrebbe disabilitare il trigger con il nome specificato. Ciò garantisce che il trigger non venga sparato su inserti o elimina le azioni.

Esempio 2 - Disabilita trigger usando SSMS

Puoi anche disabilitare un trigger utilizzando SQL Server Management Studio. Apri Explorer Object. Individuare il database di destinazione -> Tabella di destinazione - Trigger.

Fare clic con il tasto destro e selezionare Disabilita.


Una volta riuscito, dovresti vedere una finestra di dialogo successo.

Esempio 3 - SQL Server Disabilita tutti i trigger su una tabella/vista

È inoltre possibile disabilitare tutti i trigger in una determinata tabella o visualizzazione utilizzando il comando fornito nello snippet di seguito:

Disabilita Trigger All On
local_db.banche dati;


La query sopra disabiliterà tutti i trigger nella tabella dei database.

Esempio 4 - SQL Server Disabilita tutti i trigger in un database

Supponiamo di voler eseguire un trigger a livello di database Disabilita. È possibile eseguire una query come previsto di seguito:

Disabilita Trigger All On
Banca dati;

Terminazione

In questo post, abbiamo discusso di come utilizzare i comandi Disabilita Trigger in SQL Server per disabilitare i trigger a vari livelli di oggetti.

Grazie per aver letto!!