sql >> Databasteknik >  >> RDS >> Sqlserver

"Kan inte släppa utlösaren" Fel när du försöker släppa en inloggningsutlösare? Prova detta.

Försöker du släppa en inloggningstrigger i SQL Server, men du får ett felmeddelande som följande?

"Kan inte släppa triggern 'trigger_name', eftersom den inte finns eller så har du inte behörighet."

Det kan bero på att du saknar ON ALL SERVER argument.

När du skapar en inloggningsutlösare använder du ON ALL SERVER argument.

Du kan också använda detta argument med DDL-utlösare. Detta argument tillämpar utlösarens omfattning på den aktuella servern.

När du släpper sådana triggers (d.v.s. inloggningsutlösare och DDL-utlösare som skapades med ON ALL SERVER ), måste du också använda ON ALL SERVER .

Exempel på felet

Jag gjorde nyligen detta misstag själv. I mitt fall försökte jag släppa en inloggningsutlösare så här:

DROP TRIGGER trg_limit_concurrent_sessions;

Men det resulterade i följande fel:

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

Jag var förvirrad, för det var jag som skapade triggern. Faktum är att jag skapade det tidigare i samma session!

Men sedan insåg jag mitt misstag.

Lösningen

Lösningen var enkel – lägg bara till ON ALL SERVER till min kod.

DROP TRIGGER trg_limit_concurrent_sessions ON ALL SERVER;

Resultat:

Commands completed successfully.

Jag hoppas att den här artikeln har hjälpt om du har stött på samma fel.


  1. datetime till totalminute i sql

  2. PDO få det sista ID:t insatt

  3. Introduktion till Python SQL-bibliotek

  4. Vad är skillnaden mellan pg_table_size, pg_relation_size och pg_total_relation_size? (PostgreSQL)