SQL Server Désactiver le déclencheur

SQL Server Désactiver le déclencheur

Un déclencheur est une procédure stockée exécutée lorsqu'une action / événement spécifique se produit dans le serveur. Divers types de déclencheurs peuvent être associés à des actions particulières.

Ce message vise à vous montrer comment vous pouvez désactiver un déclencheur existant dans SQL Server. La désactivation d'un déclencheur peut temporairement vous permettre d'effectuer une action sans événement ultérieur. Ceci est très utile lors du dépannage ou de l'exécution des opérations de maintenance sur le serveur.

Création d'un déclencheur de test

Avant de discuter de la façon de désactiver un déclencheur existant dans le serveur SQL, commençons par définir un simple déclencheur à des fins d'illustration.

Commencez par créer une base de données:

Drop Database Si existe local_db;
Créer une base de données local_db;
Utilisez local_db;


Ensuite, définissez une table comme indiqué:

Créer des bases de données de table (
id int not null identité (1,1) clé primaire,
server_name varchar (50),
server_address varchar (255) pas null,
compression_method varchar (100) par défaut «Aucun»,
size_on_disk float pas nul,
Float de taille_compressée,
total_records int not null,
Init_Date Date
));


Ensuite, créez un déclencheur pour désactiver le nombre de lignes affectées lorsqu'un insert ou une action de suppression se produit.

Créer le nosatus de déclenchement
Sur les bases de données
Après insérer, supprimer
COMME
COMMENCER
Définir NOCOUNT sur;
FIN;

SQL Server Désactiver la requête de déclenchement

Heureusement, SQL Server nous fournit une méthode native de désactivation d'un déclencheur, comme indiqué dans la syntaxe ci-dessous:

Désactiver le déclencheur [schema_name . ] Trigger_name [,… n] | TOUS
Sur object_name | Base de données | Tous les serveurs [; ]]

Arguments de requête

La requête accepte les paramètres suivants:

    1. schéma_name - Cela définit le nom du schéma sur lequel réside le déclencheur. Le paramètre SHCEMA_NAME n'est pas pris en charge pour les déclencheurs du langage de définition des données ou les déclencheurs de connexion.
    2. Trigger_name - le nom du déclencheur que vous souhaitez désactiver.
    3. Tout - ce paramètre permet à tous les déclencheurs définis dans la clause ON d'être désactivés en même temps.
    4. object_name - le nom de la table ou la vue sur laquelle réside le déclencheur.
    5. Base de données - Spécifie la portée du déclencheur DDL.

Selon la configuration de l'utilisateur et du serveur cible, la requête de déclenchement de désactivation nécessite une autorisation de modification sur la table ou la vue.

Exemple - désactiver un déclencheur DML sur une table

L'exemple suivant montre comment désactiver le Nostat déclencheur sur le tableau des bases de données.

Désactiver les bases de données de déclenchement.nosatus sur
bases de données;


L'exécution de l'instruction ci-dessus doit désactiver le déclencheur avec le nom spécifié. Cela garantit que le déclencheur n'est pas tiré sur l'insert ou supprimer des actions.

Exemple 2 - Désactiver le déclencheur à l'aide de SSMS

Vous pouvez également désactiver un déclencheur à l'aide du studio de gestion SQL Server. Ouvrez l'objet Explorer. Localisez la base de données cible -> Tableau cible - Triggers.

Cliquez avec le bouton droit et sélectionnez Désactiver.


Une fois réussi, vous devriez voir une boîte de dialogue de succès.

Exemple 3 - SQL Server Désactiver tous les déclencheurs sur une table / vue

Vous pouvez également désactiver tous les déclencheurs dans une table ou une vue donnée en utilisant la commande fournie dans l'extrait ci-dessous:

Désactiver le déclenchement
local_db.bases de données;


La requête ci-dessus désactivera tous les déclencheurs du tableau des bases de données.

Exemple 4 - SQL Server Désactiver tous les déclencheurs dans une base de données

Supposons que vous souhaitiez effectuer un déclencheur de la base de données Désactiver. Vous pouvez exécuter une requête comme indiqué ci-dessous:

Désactiver le déclenchement
base de données;

Résiliation

Dans cet article, nous avons discuté de la façon d'utiliser des commandes de déclenchement de désactivation dans SQL Server pour désactiver les déclencheurs à différents niveaux d'objets.

Merci d'avoir lu!!