Udostępnij za pośrednictwem


DROP TRIGGER (języka Transact-SQL)

Usuwa jeden lub więcej wyzwalaczy DML lub DDL z bieżącej bazy danych.

Topic link iconKonwencje składni języka Transact-SQL

Trigger on an INSERT, UPDATE, or DELETE statement to a table or view (DML Trigger)
DROP TRIGGER [schema_name.]trigger_name [ ,...n ] [ ; ]

Trigger on a CREATE, ALTER, DROP, GRANT, DENY, REVOKE or UPDATE statement (DDL Trigger)
DROP TRIGGER trigger_name [ ,...n ] 
ON { DATABASE | ALL SERVER } 
[ ; ]

Trigger on a LOGON event (Logon Trigger)
DROP TRIGGER trigger_name [ ,...n ] 
ON ALL SERVER 

Argumenty

  • schema_name
    To nazwa schematu, do której należy dany wyzwalacz DML.DML triggers are scoped to the schema of the table or view on which they are created.schema_name cannot be specified for DDL or logon triggers.

  • trigger_name
    To nazwa wyzwalacza do usunięcia.Aby wyświetlić listę aktualnie utworzone wyzwalaczy, należy użyć sys.server_assembly_modules or sys.server_triggers.

  • BAZY DANYCH
    Wskazuje zakres wyzwalacz DLL ma zastosowanie do bieżącej bazy danych.Bazy danych musi być określony, jeśli zostały one także określone wyzwalacz został utworzenia lub modyfikacji.

  • WSZYSTKIE SERWERA
    Wskazuje zakres wyzwalacz DLL odnosi się do bieżącego serwera.WSZYSTKIE SERVER musi być określony, jeśli zostały one także określone wyzwalacz został utworzenia lub modyfikacji.WSZYSTKIE SERVER ma również zastosowanie do logowania wyzwalaczy.

Remarks

Można usunąć wyzwalacz DML, upuszczając go lub odrzucając tabela wyzwalacz.Po upuszczeniu tabela także są usuwane wszystkie skojarzone wyzwalacze.

Po upuszczeniu wyzwalacz informacji na temat wyzwalacz jest usuwany z sys.Objects, sys.Triggers and sys.sql_modules widoki wykazu.

Wiele wyzwalaczy DDL mogą być odrzucone na instrukcja DROP TRIGGER tylko wtedy, gdy wszystkie wyzwalacze utworzone przy użyciu identycznych ON klauzul.

Aby zmienić wyzwalacz, użyj DROP TRIGGER i CREATE TRIGGER.Aby zmienić definicję wyzwalacza, za pomocą instrukcji ALTER TRIGGER.

Aby uzyskać więcej informacji na temat określania zależności dla określonego wyzwalacza zobacz sys.sql_expression_dependencies, sys.dm_sql_referenced_entities (Transact-SQL), a sys.dm_sql_referencing_entities (Transact-SQL).

Aby uzyskać więcej informacji na temat wyświetlania tekstu wyzwalacza zobacz sp_helptext (Transact-SQL) i sys.sql_modules (Transact-SQL).

Aby uzyskać więcej informacji na temat wyświetlania listy istniejących wyzwalaczy zobacz sys.triggers (Transact-SQL) i sys.server_triggers (Transact-SQL).

Uprawnienia

Odrzucanie wyzwalacz DML wymaga uprawnienia ALTER na tabela lub widoku, na którym jest zdefiniowana wyzwalacza.

Aby usunąć wyzwalacz DLL zdefiniowane przy użyciu zakres serwera (ON ALL SERVER) lub wyzwalacza logowania wymaga uprawnienia kontroli SERVER na serwerze.Odrzucanie DDL wyzwalacza zdefiniowane przy użyciu zakres bazy danych (ON DATABASE) wymaga uprawnienia ALTER bez TRIGGER DDL bazy danych w bieżącej bazie danych.

Przykłady

A.Usunięcie wyzwalacz DML

W poniższym przykładzie spadnie employee_insupd wyzwalacz.

B.Usunięcie wyzwalacz DLL

W poniższym przykładzie spadnie wyzwalacz DLL safety.

Important noteImportant Note:

Ponieważ wyzwalacze DDL nie jest objęty zakresem schematu, a w związku z tym nie są wyświetlane w sys.Objects wykazu widoku, funkcja OBJECT_ID nie można zbadać, czy istnieją w bazie danych.Obiekty, które się nie schematu zakresie muszą być kierowane kwerendy przy użyciu widoku odpowiednim wykazem.Użyj wyzwalaczy DDL sys.Triggers.