FirebirdSQL logo
 VIEWPROCEDURE 

L’espace des noms DDL_TRIGGER

Pendant que le déclencheur DDL est en cours d’exécution, l’espace de noms DL_TRIGGER est disponible pour être utilisé dans la fonction RDB$GET_CONTEXT.Son utilisation est également autorisée dans les procédures stockées et les fonctions appelées par des déclencheurs DDL.

Le contexte DDL_TRIGGER agit comme une pile.Avant de déclencher un déclencheur DDL, les valeurs liées à la commande en cours d’exécution sont placées sur cette pile.Lorsque le déclenchement est terminé, les valeurs sont éjectées.Ainsi.Dans le cas d’instructions DDL en cascade, lorsque chaque commande DDL utilisateur déclenche un déclencheur DDL, et que ce déclencheur déclenche d’autres commandes DDL, avec EXECUTE STATEMENT, les valeurs des variables dans l’espace de noms DDL_TRIGGER correspondront à la commande qui a déclenché le dernier déclencheur DDL dans la pile d’appels.

Variables disponibles dans l’espace de noms DDL_TRIGGER
  • EVENT_TYPE - type d’événement (CREATE, ALTER, DROP)

  • OBJECT_TYPE - type d’objet (TABLE, VIEW etc.)

  • DDL_EVENT - nom de l’événement (<ddl event item>),

    <ddl event item> = EVENT_TYPE || '' || OBJECT_TYPE

  • OBJECT_NAME - nom de l’objet de métadonnées

  • OLD_OBJECT_NAME - nom de l’objet de métadonnées avant le renommage.

  • NEW_OBJECT_NAME - nom de l’objet de métadonnées après le renommage.

  • SQL_TEXT - texte de la requête SQL

Supprimer un déclencheur

De nouvelles clés ont été ajoutées à certains utilitaires de ligne de commande Firebird pour désactiver les trigger dans la base de données:

gbak -nodbtriggers
isql -nodbtriggers
nbackup -T

Ces clés ne peuvent être utilisées que par SYSDBA ou le propriétaire de la base de données.