Probeert u een aanmeldingstrigger in SQL Server te verwijderen, maar krijgt u een foutmelding zoals de volgende?
"Kan de trigger 'trigger_name' niet laten vallen, omdat deze niet bestaat of je geen toestemming hebt."
Het kan zijn dat u de ON ALL SERVER
. mist argument.
Wanneer u een aanmeldingstrigger maakt, gebruikt u de ON ALL SERVER
argument.
U kunt dit argument ook gebruiken met DDL-triggers. Dit argument past het bereik van de trigger toe op de huidige server.
Wanneer u dergelijke triggers verwijdert (d.w.z. aanmeldingstriggers en DDL-triggers die zijn gemaakt met ON ALL SERVER
), moet u ook ON ALL SERVER
. gebruiken .
Voorbeeld van de fout
Deze fout heb ik laatst zelf gemaakt. In mijn geval probeerde ik een aanmeldingstrigger als volgt te verwijderen:
DROP TRIGGER trg_limit_concurrent_sessions;
Maar dat resulteerde in de volgende fout:
Cannot drop the trigger 'trg_limit_concurrent_sessions', because it does not exist or you do not have permission.
Ik was in de war, omdat ik degene was die de trigger creëerde. Ik had het zelfs eerder in dezelfde sessie gemaakt!
Maar toen realiseerde ik me mijn fout.
De oplossing
De oplossing was eenvoudig - voeg eenvoudig ON ALL SERVER
toe naar mijn code.
DROP TRIGGER trg_limit_concurrent_sessions ON ALL SERVER;
Resultaat:
Commands completed successfully.
Ik hoop dat dit artikel je heeft geholpen als je dezelfde fout bent tegengekomen.