Eliminar o deshabilitar desencadenadores DML

Se aplica a:SQL ServerAzure SQL DatabaseAzure SQL Managed Instance

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

En este tema

Antes de empezar

Recomendaciones

  • Cuando el desencadenador se elimina, se quita de la base de datos actual. Ni la tabla ni los datos en los que se basa se ven afectados. Si se elimina una tabla, se eliminarán automáticamente todos los desencadenadores que contenga.

  • Un desencadenador se habilita de forma predeterminada cuando se crea.

  • Al deshabilitar un desencadenador no se quita. Sigue siendo un objeto de la base de datos actual. Sin embargo, el desencadenador no se activará cuando se ejecute la instrucción INSERT, UPDATE o DELETE en la que se programó. Los desencadenadores deshabilitados se pueden volver a habilitar. Si se habilita un desencadenador, éste no se vuelve a crear. El desencadenador se activa de la misma forma que cuando se creó originalmente.

Seguridad

Permisos

Para eliminar un desencadenador DML se necesita el permiso ALTER en la tabla o vista en la que está definido el desencadenador.

Para deshabilitar o habilitar un desencadenador DML, el usuario debe contar como mínimo con 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, a continuación, expándala.

  2. Expanda la base de datos que desee, expanda Tablasy, 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 quiera eliminar y luego haga clic en Eliminar.

  4. En el cuadro de diálogo Eliminar objeto , compruebe que se ha especificado el desencadenador deseado y 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, a continuación, expándala.

  2. Expanda la base de datos que desee, expanda Tablasy, 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 que quiera deshabilitar y luego haga clic en Deshabilitar.

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

Usar Transact-SQL

Para eliminar un desencadenador DML

  1. Conéctese con el 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 consultas. Ejecute la instrucción CREATE TRIGGER para crear el desencadenador Sales.bonus_reminder . Para eliminar el desencadenador, ejecute la instrucción DROP TRIGGER .

--Create the trigger.  
USE AdventureWorks2022;  
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 AdventureWorks2022;  
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 con el 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 consultas. Ejecute la instrucción CREATE TRIGGER para crear el desencadenador Sales.bonus_reminder . Para deshabilitar y habilitar el desencadenador, ejecute las instrucciones DISABLE TRIGGER y HABILITE TRIGGER , respectivamente.

--Create the trigger.  
USE AdventureWorks2022;  
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 AdventureWorks2022;  
GO  
DISABLE TRIGGER Sales.bonus_reminder ON Sales.SalesPersonQuotaHistory;  
GO  
  
--Enable the trigger.  
USE AdventureWorks2022;  
GO  
ENABLE TRIGGER Sales.bonus_reminder ON Sales.SalesPersonQuotaHistory;  
GO  

Consulte también

ALTER TRIGGER (Transact-SQL)
CREATE TRIGGER (Transact-SQL)
DROP TRIGGER (Transact-SQL)
ENABLE TRIGGER (Transact-SQL)
DISABLE TRIGGER (Transact-SQL)
EVENTDATA (Transact-SQL)
Obtener información acerca de 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)