Un déclencheur est une procédure stockée dans une base de données qui s'appelle automatiquement chaque fois qu'un événement spécial se produit dans la base de données. Par exemple, un déclencheur peut être invoqué lorsqu'une ligne est insérée dans une table spécifiée ou lorsque des colonnes de table spécifiques sont mises à jour. En termes simples, un déclencheur est un ensemble de SQL instructions avec des noms particuliers qui sont stockées dans la mémoire système. Il appartient à une classe spécifique de procédures stockées qui sont automatiquement invoquées en réponse aux événements du serveur de base de données. Chaque déclencheur est associé à une table.
Un déclencheur ne pouvant pas être appelé directement, contrairement à une procédure stockée, il est appelé procédure spéciale. Un déclencheur est automatiquement appelé chaque fois qu'un événement de modification de données sur une table a lieu, ce qui constitue la principale distinction entre un déclencheur et une procédure. En revanche, une procédure stockée doit être appelée directement.
Voici les principales différences entre les déclencheurs et les procédures stockées :
Shloka Mehta
- Les déclencheurs ne peuvent pas être invoqués ou exécutés manuellement.
- Il n'y a aucune chance que les déclencheurs reçoivent des paramètres.
- Une transaction ne peut pas être validée ou annulée dans un déclencheur.
Syntaxe:
créer un déclencheur [trigger_name]
[avant | après]
insérer
sur [nom_table]
[pour chaque ligne]
[trigger_body]
Explication de la syntaxe
- Créer un déclencheur [trigger_name] : crée ou remplace un déclencheur existant par le trigger_name.
- [avant | after] : Ceci spécifie quand le déclencheur sera exécuté.
- insert : ceci spécifie l'opération DML.
- Sur [table_name] : ceci spécifie le nom de la table associée au déclencheur.
- [pour chaque ligne] : ceci spécifie un déclencheur au niveau de la ligne, c'est-à-dire que le déclencheur sera exécuté pour chaque ligne affectée.
- [trigger_body] : indique l'opération à effectuer lorsque le déclencheur est déclenché.
Pourquoi utilisons-nous des déclencheurs ?
Lorsque nous devons effectuer certaines actions automatiquement dans certains scénarios souhaitables, les déclencheurs seront utiles. Par exemple, nous devons être conscients de la fréquence et du calendrier des modifications apportées à un tableau en constante évolution. Dans de tels cas, nous pourrions créer un déclencheur pour insérer les données requises dans une table différente si la table principale subit des modifications.
Différents types de déclencheurs dans SQL Server
Il existe deux catégories de déclencheurs :
- Déclencheur DDL
- Déclencheur DML
- Déclencheurs de connexion
Déclencheurs DDL
Les événements de commande DDL (Data Definition Language) tels que Create_table, Create_view, drop_table, Drop_view et Alter_table provoquent l'activation des déclencheurs DDL.
serveur SQL
create trigger safety on database for create_table,alter_table,drop_table as print 'you can not create,drop and alter tab>
Sortir:
Déclencheurs DML
Les données utilisent des événements de commande DML (Manipulation Language) commençant par Insert, Update et Delete qui déclenchent les déclencheurs DML. correspondant à insert_table, update_view et delete_table.
chaîne de format Java
serveur SQL
create trigger deep on emp for insert,update ,delete as print 'you can not insert,update and delete this table i' rollback;>
Sortir:
Déclencheurs de connexion
les déclencheurs de connexion sont déclenchés en réponse à un événement LOGON. Lorsqu'une session utilisateur est créée avec une instance SQL Server après la fin du processus d'authentification de journalisation mais avant d'établir une session utilisateur, l'événement LOGON a lieu. Par conséquent, les messages de l'instruction PRINT et toutes les erreurs générées par le déclencheur seront tous visibles dans le journal des erreurs SQL Server. Les erreurs d’authentification empêchent l’utilisation des déclencheurs de connexion. Ces déclencheurs peuvent être utilisés pour suivre l'activité de connexion ou définir une limite sur le nombre de sessions qu'une connexion donnée peut avoir afin d'auditer et de gérer les sessions du serveur.
Comment SQL Server affiche-t-il le déclencheur ?
Le déclencheur show ou list est utile lorsque nous avons de nombreuses bases de données avec de nombreuses tables. Cette requête est très utile lorsque les noms de tables sont les mêmes dans plusieurs bases de données. Nous pouvons afficher une liste de tous les déclencheurs disponibles dans SQL Server en utilisant la commande ci-dessous :
Syntaxe:
FROM sys.triggers, nom SELECT, is_instead_of_trigger
SI type = 'TR' ;
SQL Server Management Studio permet d'afficher ou de répertorier très simplement tous les déclencheurs disponibles pour une table donnée. Les étapes suivantes nous aideront à y parvenir :
Allez au Bases de données , sélectionnez la base de données souhaitée, puis développez-la.
- Sélectionnez le les tables menu et développez-le.
- Sélectionnez n’importe quelle table spécifique et développez-la.
Nous aurons ici différentes options. Quand on choisit le Déclencheurs option, il affiche tous les déclencheurs disponibles dans ce tableau.
AVANT et APRÈS Déclenchement
Les déclencheurs AVANT exécutent l’action de déclenchement avant l’exécution de l’instruction de déclenchement. Les déclencheurs APRÈS exécutent l’action de déclenchement après l’exécution de l’instruction de déclenchement.
Exemple
Compte tenu de la base de données des rapports des étudiants, dans laquelle l'évaluation des notes des étudiants est enregistrée. Dans un tel schéma, créez un déclencheur pour que le total et le pourcentage des marques spécifiées soient automatiquement insérés chaque fois qu'un enregistrement est inséré.
Ici, un déclencheur sera invoqué avant que l'enregistrement ne soit inséré afin que la balise AVANT puisse être utilisée.
Supposons que le schéma de base de données
Requête
mysql>>desc Étudiant;>
Déclencheur SQL vers l'énoncé du problème.
L'instruction SQL ci-dessus créera un déclencheur dans la base de données des étudiants dans lequel, chaque fois que les notes des matières sont saisies, avant d'insérer ces données dans la base de données, le déclencheur calculera ces deux valeurs et les insérera avec les valeurs saisies. c'est à dire.
Sortir
De cette manière, des déclencheurs peuvent être créés et exécutés dans les bases de données.
Avantage des déclencheurs
Les avantages de l'utilisation de déclencheurs dans SQL Server sont les suivants :
- Les règles des objets de base de données sont établies par des déclencheurs, qui entraînent l'annulation des modifications si elles ne sont pas respectées.
- Le déclencheur examinera les données et, si nécessaire, apportera des modifications.
- Nous pouvons garantir l'intégrité des données grâce à des déclencheurs.
- Les données sont validées à l'aide de déclencheurs avant d'être insérées ou mises à jour.
- Les déclencheurs nous aident à maintenir un journal des enregistrements.
- Du fait qu’ils n’ont pas besoin d’être compilés à chaque exécution, les déclencheurs améliorent les performances des requêtes SQL.
- Le code côté client est réduit par les déclencheurs, ce qui permet d'économiser du temps et du travail.
- La maintenance des déclencheurs est simple.
Désavantage des déclencheurs
Les inconvénients de l'utilisation de déclencheurs dans SQL Server sont les suivants :
- Seuls les déclencheurs permettent l'utilisation de validations étendues.
- Des déclencheurs automatiques sont utilisés et l'utilisateur ignore quand ils sont exécutés. Par conséquent, il est difficile de résoudre les problèmes qui surviennent au niveau de la couche de base de données.
- La surcharge du serveur de base de données peut augmenter en raison de déclencheurs.
- Dans une seule instruction CREATE TRIGGER, nous pouvons spécifier la même action de déclenchement pour plusieurs actions utilisateur, telles que INSERT et UPDATE.
- Seule la base de données actuelle est disponible pour créer des déclencheurs, mais ils peuvent toujours faire des références à des objets en dehors de la base de données.
Questions fréquemment posées
Q1 : Qu'est-ce qu'un déclencheur SQL ?
Répondre:
Un déclencheur SQL est un objet de base de données associé à une table et exécute automatiquement un ensemble d'instructions SQL lorsqu'un événement spécifique se produit sur cette table. Les déclencheurs sont utilisés pour appliquer des règles métier, maintenir l'intégrité des données et automatiser certaines actions au sein d'une base de données. Ils peuvent être déclenchés par divers événements, tels que l'insertion, la mise à jour ou la suppression de données dans une table, et vous permettent d'effectuer des opérations supplémentaires en fonction de ces événements.
Q2 : Comment fonctionnent les déclencheurs SQL ?
Répondre:
Les déclencheurs SQL sont définis à l'aide d'instructions SQL et sont associés à une table spécifique. Lorsque l'événement déclencheur défini (par exemple, INSERT, UPDATE, DELETE) se produit sur cette table, le code déclencheur associé est exécuté automatiquement. Le code de déclenchement peut être constitué d'instructions SQL capables de manipuler des données dans la même table ou dans d'autres tables, d'appliquer des contraintes ou d'effectuer d'autres actions. Les déclencheurs sont exécutés dans la portée de la transaction et peuvent être définis pour s'exécuter avant ou après l'événement déclencheur.
Q3 : Quels sont les avantages de l’utilisation des déclencheurs SQL ?
Répondre:
Les avantages de l'utilisation des déclencheurs SQL incluent :
Intégrité des données : les déclencheurs vous permettent d'appliquer des règles et contraintes métier complexes au niveau de la base de données, garantissant ainsi que les données restent cohérentes et exactes.
Automatisation : les déclencheurs peuvent automatiser des tâches répétitives ou complexes en exécutant des actions prédéfinies chaque fois qu'un événement spécifié se produit. Cela réduit le besoin d’intervention manuelle et améliore l’efficacité.
latex dérivé partielPistes d'audit : les déclencheurs peuvent être utilisés pour suivre les modifications apportées aux données, telles que la journalisation des modifications dans une table d'audit distincte. Cela aide à auditer et à maintenir un historique des modifications de données.
Validation des données : les déclencheurs peuvent effectuer des contrôles de validation supplémentaires sur les données avant qu'elles ne soient insérées, mises à jour ou supprimées, garantissant ainsi que seules les données valides et conformes sont stockées dans la base de données.