DROP TRIGGER (Transact-SQL)
Quita uno o varios desencadenadores DML, DDL o logon de la base de datos actual.
Convenciones de sintaxis de Transact-SQL
Sintaxis
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
Argumentos
- schema_name
Es el nombre del esquema al que pertenece el desencadenador DML. Los desencadenadores DML se limitan al esquema de la tabla o vista en la que se crearon. No se puede especificar schema_name para desencadenadores DDL o logon.
- trigger_name
Es el nombre del desencadenador que se va a quitar. Para ver una lista de los desencadenadores creados actualmente, utilice sys.triggers (Transact-SQL).
- DATABASE
Indica que el ámbito del desencadenador DDL se aplica a la base de datos actual. Debe especificarse DATABASE si también se especificó al crear o modificar el desencadenador.
- ALL SERVER
Indica que el ámbito del desencadenador DDL o logon se aplica al servidor actual. Debe especificarse ALL SERVER si también se especificó al crear o modificar el desencadenador.
Notas
Puede eliminar un desencadenador DML si quita éste o quita la tabla del desencadenador. Cuando se quita una tabla, también se quitan todos los desencadenadores asociados.
Cuando se quita un desencadenador, se quita la información acerca del desencadenador de las vistas de catálogos sys.objects, sys.triggers y sys.sql_modules.
Se pueden quitar varios desencadenadores DDL por instrucción DROP TRIGGER sólo si todos los desencadenadores se crearon utilizando las mismas cláusulas ON.
Para cambiar el nombre de un desencadenador, utilice DROP TRIGGER y CREATE TRIGGER. Para cambiar la definición de un desencadenador, utilice ALTER TRIGGER .
Para obtener más información acerca de cómo determinar las dependencias de un desencadenador específico, vea sp_depends (Transact-SQL) y sys.sql_dependencies (Transact-SQL).
Para obtener más información acerca de cómo ver el texto del desencadenador, vea sp_helptext (Transact-SQL) y sys.sql_modules (Transact-SQL).
Para obtener más información acerca de cómo ver una lista de los desencadenadores existentes, vea sys.triggers (Transact-SQL) y sys.server_triggers.
Permisos
Para quitar un desencadenador DML se requiere el permiso ALTER en la tabla o vista en la que está definido el desencadenador.
Para anular un desencadenador DDL definido con ámbito de servidor (ON ALL SERVER) o un desencadenador logon se requiere el permiso CONTROL SERVER en el servidor. Para quitar un desencadenador DDL definido con el ámbito de base de datos (ON DATABASE) se requiere el permiso ALTER ANY DATABASE DDL TRIGGER en la base de datos actual.
Ejemplos
A. Quitar un desencadenador DML
En el siguiente ejemplo se quita el desencadenador employee_insupd
.
USE AdventureWorks;
GO
IF OBJECT_ID ('employee_insupd', 'TR') IS NOT NULL
DROP TRIGGER employee_insupd;
GO
B. Quitar un desencadenador DDL
En el siguiente ejemplo se quita el desencadenador DDL safety
.
Importante: |
---|
Puesto que los desencadenadores DDL no están en el ámbito del esquema y, por tanto, no aparecen en la vista de catálogo sys.objects, la función OBJECT_ID no se puede utilizar para consultar si existen en la base de datos. Los objetos que no están en el ámbito del esquema deben consultarse utilizando la vista de catálogo apropiada. Para los desencadenadores DDL, use sys.triggers. |
USE AdventureWorks;
GO
IF EXISTS (SELECT * FROM sys.triggers
WHERE parent_class = 0 AND name = 'safety')
DROP TRIGGER safety
ON DATABASE;
GO
Vea también
Referencia
ALTER TRIGGER (Transact-SQL)
CREATE TRIGGER (Transact-SQL)
ENABLE TRIGGER (Transact-SQL)
DISABLE TRIGGER (Transact-SQL)
EVENTDATA (Transact-SQL)
sp_help (Transact-SQL)
sp_helptrigger (Transact-SQL)
sys.objects (Transact-SQL)
sys.triggers (Transact-SQL)
sys.trigger_events (Transact-SQL)
sys.sql_modules (Transact-SQL)
sys.assembly_modules (Transact-SQL)
sys.server_triggers
sys.server_trigger_events
sys.server_sql_modules
sys.server_assembly_modules (Transact-SQL)
Otros recursos
Obtener información acerca de los desencadenadores DML
Obtener información acerca de los desencadenadores DDL
Ayuda e información
Obtener ayuda sobre SQL Server 2005
Historial de cambios
Versión | Historial |
---|---|
12 de diciembre de 2006 |
|