Je me demandais s'il était possible d'activer un déclencheur uniquement pour mon application actuelle et non pour un SQL exécuté sur la table.
La situation:
Deux applications fonctionnent sur la même base de données. App1 et App2.
J'ai un déclencheur sur «MyTable» qui ne doit être déclenché que lorsque App1 exécute une requête, mais pas lorsque App2 le fait.
APP_NAME()
, vous pouvez également utiliserSET CONTEXT_INFO
.SET CONTEXT_INFO
est couramment utilisé pour envoyer des informations à des déclencheurs comme celui-ci.Réponses:
Bien que ce ne soit pas un bon design, c'est faisable. Vous devrez mettre la logique dans le déclencheur pour que le code ne soit exécuté que lorsque l'application appropriée est connectée.
la source
app_name()
est très facile d'usurper via les propriétés de la chaîne de connexion.