Me preguntaba si es posible habilitar un desencadenador solo para mi aplicación actual y no para cualquier sql ejecutado en la tabla.
La situación:
Hay dos aplicaciones que trabajan en la misma base de datos. App1 y App2.
Tengo un activador en 'MyTable' que solo debe activarse cuando App1 está ejecutando una consulta, pero no cuando App2 lo está haciendo.
sql-server
sql-server-2008-r2
Patric
fuente
fuente
APP_NAME()
, también puede usarSET CONTEXT_INFO
.SET CONTEXT_INFO
se usa comúnmente para enviar información a disparadores como este.Respuestas:
Si bien no es un buen diseño, es factible. Tendrá que poner lógica en el disparador para que el código solo se ejecute cuando se conecte la aplicación correcta.
fuente
app_name()
es muy fácil suplantar a través de las propiedades de la cadena de conexión.