sql >> Databáze >  >> RDS >> Sqlserver

Chyba „Nelze spustit spoušť“ při pokusu o zrušení spouštěče přihlášení? Zkuste to.

Pokoušíte se zrušit spouštěč přihlášení na serveru SQL Server, ale zobrazuje se vám následující chyba?

„Nelze zrušit spouštěč ‚trigger_name‘, protože neexistuje nebo nemáte oprávnění.“

Může to být tím, že vám chybí ON ALL SERVER argument.

Když vytvoříte spouštěč přihlášení, použijete ON ALL SERVER argument.

Tento argument můžete také použít se spouštěči DDL. Tento argument aplikuje rozsah spouštěče na aktuální server.

Když takové spouštěče zrušíte (tj. spouštěče přihlášení a spouštěče DDL, které byly vytvořeny pomocí ON ALL SERVER ), musíte také použít ON ALL SERVER .

Příklad chyby

Sám jsem tuto chybu nedávno udělal. V mém případě jsem se pokoušel vypustit spouštěč přihlášení takto:

DROP TRIGGER trg_limit_concurrent_sessions;

To však vedlo k následující chybě:

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

Byl jsem zmatený, protože jsem to byl já, kdo vytvořil spoušť. Ve skutečnosti jsem to vytvořil dříve ve stejné relaci!

Ale pak jsem si uvědomil svou chybu.

Řešení

Řešení bylo snadné – jednoduše připojte ON ALL SERVER na můj kód.

DROP TRIGGER trg_limit_concurrent_sessions ON ALL SERVER;

Výsledek:

Commands completed successfully.

Doufám, že vám tento článek pomohl, pokud jste narazili na stejnou chybu.


  1. SQL SUM() pro začátečníky

  2. PostgreSQL EXPLAIN – Jaké jsou náklady na dotaz?

  3. Používejte relační databáze MySQL na Fedoře 12

  4. Instalace Oracle 11g Release 2 Enterprise Edition na Windows 7 32-Bit