Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Грешка „Cannot the drop the trigger“ при опит за премахване на тригер за влизане? Опитайте тази.

Опитвате ли се да премахнете тригер за влизане в SQL Server, но получавате грешка като следната?

„Не може да се премахне тригера „trigger_name“, защото не съществува или нямате разрешение.“

Може да се дължи на това, че ви липсва ON ALL SERVER аргумент.

Когато създавате тригер за влизане, използвате ON ALL SERVER аргумент.

Можете също да използвате този аргумент с DDL тригери. Този аргумент прилага обхвата на тригера към текущия сървър.

Когато пуснете такива задействания (т.е. тригери за влизане и DDL тригери, които са създадени с ON ALL SERVER ), трябва също да използвате 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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL заявка за намиране на N-та най-висока заплата от таблица със заплати

  2. Намерете най-близката дата в SQL Server

  3. Инсталиране и конфигуриране на SQL Server Log Shipping &Disaster Recovery -4

  4. Тригер за актуализиране на SQL Server, Получавайте само променени полета

  5. Нулева застой на SQL по дизайн - някакви модели на кодиране?