sql >> Database >  >> RDS >> Sqlserver

"Kan de trigger niet laten vallen" Fout bij het verwijderen van een aanmeldingstrigger? Probeer dit.

Probeert u een aanmeldingstrigger in SQL Server te verwijderen, maar krijgt u een foutmelding zoals de volgende?

"Kan de trigger 'trigger_name' niet laten vallen, omdat deze niet bestaat of je geen toestemming hebt."

Het kan zijn dat u de ON ALL SERVER . mist argument.

Wanneer u een aanmeldingstrigger maakt, gebruikt u de ON ALL SERVER argument.

U kunt dit argument ook gebruiken met DDL-triggers. Dit argument past het bereik van de trigger toe op de huidige server.

Wanneer u dergelijke triggers verwijdert (d.w.z. aanmeldingstriggers en DDL-triggers die zijn gemaakt met ON ALL SERVER ), moet u ook ON ALL SERVER . gebruiken .

Voorbeeld van de fout

Deze fout heb ik laatst zelf gemaakt. In mijn geval probeerde ik een aanmeldingstrigger als volgt te verwijderen:

DROP TRIGGER trg_limit_concurrent_sessions;

Maar dat resulteerde in de volgende fout:

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

Ik was in de war, omdat ik degene was die de trigger creëerde. Ik had het zelfs eerder in dezelfde sessie gemaakt!

Maar toen realiseerde ik me mijn fout.

De oplossing

De oplossing was eenvoudig - voeg eenvoudig ON ALL SERVER toe naar mijn code.

DROP TRIGGER trg_limit_concurrent_sessions ON ALL SERVER;

Resultaat:

Commands completed successfully.

Ik hoop dat dit artikel je heeft geholpen als je dezelfde fout bent tegengekomen.


  1. Hoe kom je aan limieten van 8060 bytes per rij en 8000 per (varchar, nvarchar) waarde?

  2. Hoe converteer ik een string tot nu toe in MySQL?

  3. SolarWinds Serv-U gebruiken op Linux met een SQL Server-verificatiedatabase

  4. Equivalent van MySQL OP DUPLICATE KEY UPDATE in Sql Server