SQL Serverでログオントリガーを削除しようとしていますが、次のようなエラーが発生しますか?
「トリガー「trigger_name」が存在しないか、権限がないため、削除できません。」
ON ALL SERVERがないことが原因である可能性があります 引数。
ログオントリガーを作成するときは、ON ALL SERVERを使用します 口論。
この引数は、DDLトリガーで使用することもできます。この引数は、トリガーのスコープを現在のサーバーに適用します。
このようなトリガー(つまり、ログオントリガー、およびON ALL SERVERで作成されたDDLトリガー)を削除した場合 )、ON ALL SERVERも使用する必要があります 。
エラーの例
私は最近この間違いを自分で犯しました。私の場合、次のようなログオントリガーをドロップしようとしていました:
DROP TRIGGER trg_limit_concurrent_sessions; しかし、その結果、次のエラーが発生しました:
Cannot drop the trigger 'trg_limit_concurrent_sessions', because it does not exist or you do not have permission.
トリガーを作成したのは私だったので、混乱しました。実際、同じセッションの早い段階で作成しました!
しかし、それから私は自分の間違いに気づきました。
ソリューション
解決策は簡単でした– ON ALL SERVERを追加するだけです 私のコードに。
DROP TRIGGER trg_limit_concurrent_sessions ON ALL SERVER; 結果:
Commands completed successfully.
同じエラーが発生した場合は、この記事がお役に立てば幸いです。