sql >> データベース >  >> RDS >> Sqlserver

ログオントリガーをドロップしようとすると「トリガーをドロップできません」エラーが発生しますか?これを試して。

    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.

    同じエラーが発生した場合は、この記事がお役に立てば幸いです。


    1. 例を使用して説明されたSQLDROPインデックス、DROPテーブル、およびDROPデータベースステートメント

    2. SQLServerでVARCHAR/CHARの代わりにNVARCHAR/NCHARを使用する必要があるのはいつですか?

    3. 別のテーブルにないテーブルから選択する

    4. SQLServerでのメモリ設定の重要性を理解する