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.
同じエラーが発生した場合は、この記事がお役に立てば幸いです。