Eu queria saber se é possível ativar um gatilho apenas para o meu aplicativo atual e não para qualquer sql executado na tabela.
A situação:
Existem dois aplicativos trabalhando no mesmo banco de dados. App1 e App2.
Eu tenho um gatilho em 'MyTable' que só deve ser acionado quando o App1 estiver executando uma consulta, mas não quando o App2 estiver fazendo isso.
sql-server
sql-server-2008-r2
Patric
fonte
fonte
APP_NAME()
, você também pode usarSET CONTEXT_INFO
.SET CONTEXT_INFO
é comumente usado para enviar informações a gatilhos como este.Respostas:
Embora não seja um bom design, é factível. Você precisará colocar a lógica no gatilho para que o código seja executado apenas quando o aplicativo correto estiver conectado.
fonte
app_name()
é muito fácil falsificar através das propriedades da cadeia de conexão.