DROP TRIGGER (języka Transact-SQL)
Usuwa jeden lub więcej wyzwalaczy DML lub DDL z bieżącej bazy danych.
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 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. |
See Also