Você está tentando descartar um gatilho de logon no SQL Server, mas está recebendo um erro como o seguinte?
“Não é possível soltar o gatilho ‘trigger_name’, porque ele não existe ou você não tem permissão.”
Pode ser porque você está perdendo o
ON ALL SERVER
argumento. Ao criar um gatilho de logon, você usa o
ON ALL SERVER
argumento. Você também pode usar esse argumento com gatilhos DDL. Este argumento aplica o escopo do gatilho ao servidor atual.
Quando você descarta esses gatilhos (ou seja, gatilhos de logon e gatilhos DDL que foram criados com
ON ALL SERVER
), você também deve usar ON ALL SERVER
. Exemplo do erro
Recentemente, eu mesmo cometi esse erro. No meu caso, eu estava tentando soltar um gatilho de logon assim:
DROP TRIGGER trg_limit_concurrent_sessions;
Mas isso resultou no seguinte erro:
Cannot drop the trigger 'trg_limit_concurrent_sessions', because it does not exist or you do not have permission.
Fiquei confuso, porque fui eu quem criou o gatilho. Na verdade, eu o criei mais cedo na mesma sessão!
Mas então percebi meu erro.
A solução
A solução foi fácil - basta anexar
ON ALL SERVER
ao meu código. DROP TRIGGER trg_limit_concurrent_sessions ON ALL SERVER;
Resultado:
Commands completed successfully.
Espero que este artigo tenha ajudado se você encontrou o mesmo erro.