Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Erreur "Impossible de supprimer le déclencheur" lors de la tentative de suppression d'un déclencheur de connexion ? Essaye ça.

Essayez-vous de supprimer un déclencheur de connexion dans SQL Server, mais vous obtenez une erreur semblable à celle-ci ?

"Impossible de supprimer le déclencheur 'trigger_name', car il n'existe pas ou vous n'avez pas l'autorisation."

C'est peut-être parce qu'il vous manque le ON ALL SERVER arguments.

Lorsque vous créez un déclencheur de connexion, vous utilisez le ON ALL SERVER argument.

Vous pouvez également utiliser cet argument avec des déclencheurs DDL. Cet argument applique la portée du déclencheur au serveur actuel.

Lorsque vous supprimez ces déclencheurs (c'est-à-dire les déclencheurs de connexion et les déclencheurs DDL qui ont été créés avec ON ALL SERVER ), vous devez également utiliser ON ALL SERVER .

Exemple d'erreur

J'ai récemment fait cette erreur moi-même. Dans mon cas, j'essayais de supprimer un déclencheur de connexion comme celui-ci :

DROP TRIGGER trg_limit_concurrent_sessions;

Mais cela a entraîné l'erreur suivante :

Cannot drop the trigger 'trg_limit_concurrent_sessions', because it does not exist or you do not have permission.

J'étais confus, car c'est moi qui ai créé le déclencheur. En fait, je l'avais créé plus tôt dans la même session !

Mais ensuite j'ai réalisé mon erreur.

La solution

La solution était simple - ajoutez simplement ON ALL SERVER à mon code.

DROP TRIGGER trg_limit_concurrent_sessions ON ALL SERVER;

Résultat :

Commands completed successfully.

J'espère que cet article vous a aidé si vous avez rencontré la même erreur.