Stai tentando di rilasciare un trigger di accesso in SQL Server, ma viene visualizzato un errore simile al seguente?
"Impossibile rilasciare il trigger 'trigger_name', perché non esiste o non hai l'autorizzazione."
Potrebbe essere perché ti manca il ON ALL SERVER
argomento.
Quando crei un attivatore di accesso, utilizzi il ON ALL SERVER
discussione.
Puoi anche usare questo argomento con i trigger DDL. Questo argomento applica l'ambito del trigger al server corrente.
Quando si rilasciano tali trigger (ad esempio trigger di accesso e trigger DDL creati con ON ALL SERVER
), devi utilizzare anche ON ALL SERVER
.
Esempio di errore
Recentemente ho commesso questo errore io stesso. Nel mio caso, stavo provando a rilasciare un trigger di accesso come questo:
DROP TRIGGER trg_limit_concurrent_sessions;
Ma ciò ha provocato il seguente errore:
Cannot drop the trigger 'trg_limit_concurrent_sessions', because it does not exist or you do not have permission.
Ero confuso, perché sono stato io a creare il trigger. In effetti, l'avevo creato in precedenza nella stessa sessione!
Ma poi ho capito il mio errore.
La soluzione
La soluzione è stata semplice:basta aggiungere ON ALL SERVER
al mio codice.
DROP TRIGGER trg_limit_concurrent_sessions ON ALL SERVER;
Risultato:
Commands completed successfully.
Spero che questo articolo ti sia stato d'aiuto se hai riscontrato lo stesso errore.