Compartir a través de


Eliminar o deshabilitar desencadenadores DML

En este tema se describe cómo eliminar o deshabilitar un desencadenador DML en SQL Server 2014 mediante SQL Server Management Studio o Transact-SQL.

En este tema

Antes de empezar

Recomendaciones

  • Cuando se elimina un desencadenador, se quita de la base de datos actual. La tabla y los datos en los que se basa no se ven afectados. Al eliminar una tabla, se eliminan automáticamente los desencadenadores de la tabla.

  • Un desencadenador está habilitado de forma predeterminada cuando se crea.

  • Deshabilitar un disparador no lo elimina. El desencadenador sigue existiendo como un objeto en la base de datos actual. Sin embargo, el desencadenador no se activará cuando se ejecute una instrucción INSERT, UPDATE o DELETE en la que fue programado. Los desencadenadores que están deshabilitados se pueden volver a habilitar. Habilitar un trigger no lo recrea. El desencadenador se activa de la misma manera que cuando se creó originalmente.

Seguridad

Permisos

Para eliminar un desencadenador DML, es necesario el permiso ALTER en la tabla o vista en la que se define el desencadenador.

Para deshabilitar o habilitar un desencadenador DML, como mínimo, un usuario debe tener el permiso ALTER en la tabla o vista en la que se creó el desencadenador.

Uso de SQL Server Management Studio

Para eliminar un desencadenador DML

  1. En el Explorador de objetos, conéctese a una instancia del motor de base de datos y expanda esa instancia.

  2. Expanda la base de datos que desee, expanda Tablas y, a continuación, expanda la tabla que contiene el desencadenador que desea eliminar.

  3. Expanda Desencadenadores, haga clic con el botón derecho en el desencadenador que desea eliminar y, a continuación, haga clic en Eliminar.

  4. En el cuadro de diálogo Eliminar objeto , compruebe el desencadenador que desea eliminar y, a continuación, haga clic en Aceptar.

Para deshabilitar y habilitar un desencadenador DML

  1. En el Explorador de objetos, conéctese a una instancia del motor de base de datos y expanda esa instancia.

  2. Expanda la base de datos que desee, expanda Tablas y, a continuación, expanda la tabla que contiene el desencadenador que desea deshabilitar.

  3. Expanda Desencadenadores, haga clic con el botón derecho en el desencadenador para deshabilitar y, a continuación, haga clic en Deshabilitar.

  4. Para habilitar el desencadenador, haga clic en Habilitar.

Uso de Transact-SQL

Para eliminar un desencadenador DML

  1. Conéctese al motor de base de datos.

  2. En la barra Estándar, haga clic en Nueva consulta.

  3. Copie y pegue los ejemplos siguientes en la ventana de consulta. Ejecute la instrucción CREATE TRIGGER para crear el Sales.bonus_reminder desencadenador. Para eliminar el desencadenador, ejecute la instrucción DROP TRIGGER .

--Create the trigger.  
USE AdventureWorks2012;  
GO  
IF OBJECT_ID(N'Sales.bonus_reminder', N'TR') IS NOT NULL  
    DROP TRIGGER Sales.bonus_reminder;  
GO  
CREATE TRIGGER Sales.bonus_reminder  
ON Sales.SalesPersonQuotaHistory  
WITH ENCRYPTION  
AFTER INSERT, UPDATE   
AS RAISERROR ('Notify Compensation', 16, 10);  
GO  
  
--Delete the trigger.  
USE AdventureWorks2012;  
GO  
IF OBJECT_ID ('Sales.bonus_reminder', 'TR') IS NOT NULL  
   DROP TRIGGER Sales.bonus_reminder;  
GO  
  

Para deshabilitar y habilitar un desencadenador DML

  1. Conéctese al motor de base de datos.

  2. En la barra Estándar, haga clic en Nueva consulta.

  3. Copie y pegue los ejemplos siguientes en la ventana de consulta. Ejecute la instrucción CREATE TRIGGER para crear el Sales.bonus_reminder desencadenador. Para deshabilitar y habilitar el desencadenador, ejecute las instrucciones DISABLE TRIGGER y ENABLE TRIGGER , respectivamente.

--Create the trigger.  
USE AdventureWorks2012;  
GO  
IF OBJECT_ID(N'Sales.bonus_reminder', N'TR') IS NOT NULL  
    DROP TRIGGER Sales.bonus_reminder;  
GO  
CREATE TRIGGER Sales.bonus_reminder  
ON Sales.SalesPersonQuotaHistory  
WITH ENCRYPTION  
AFTER INSERT, UPDATE   
AS RAISERROR ('Notify Compensation', 16, 10);  
GO  
  
--Disable the trigger.  
USE AdventureWorks2012;  
GO  
DISABLE TRIGGER Sales.bonus_reminder ON Sales.SalesPersonQuotaHistory;  
GO  
  
--Enable the trigger.  
USE AdventureWorks2012;  
GO  
ENABLE TRIGGER Sales.bonus_reminder ON Sales.SalesPersonQuotaHistory;  
GO  

Véase también

ALTER TRIGGER (Transact-SQL)
CREATE TRIGGER (Transact-SQL)
Desactivar el disparador (Transact-SQL)
Habilitar disparador (Transact-SQL)
DISABLE TRIGGER (Transact-SQL)
EVENTDATA (Transact-SQL)
Obtener información sobre los desencadenadores DML
sp_help (Transact-SQL)
sp_helptrigger (Transact-SQL)
sys.triggers (Transact-SQL)
sys.trigger_events (Transact-SQL)
sys.sql_modules (Transact-SQL)
sys.assembly_modules (Transact-SQL)
sys.server_triggers (Transact-SQL)
sys.server_trigger_events (Transact-SQL)
sys.server_sql_modules (Transact-SQL)
sys.server_assembly_modules (Transact-SQL)