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 2012 mediante SQL Server Management Studio o Transact-SQL.

En este tema

  • Antes de empezar:

    Recomendaciones

    Seguridad

  • Para eliminar o deshabilitar un desencadenador DML, usando:

    SQL Server Management Studio

    Transact-SQL

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.

Icono de flecha usado con el vínculo Volver al principio[Top]

Usar 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 expándala.

  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 secundario en el desencadenador que desee eliminar y, a continuación, 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 expándala.

  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 secundario en el desencadenador que desee deshabilitar y, a continuación, haga clic en Deshabilitar.

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

Icono de flecha usado con el vínculo Volver al principio[Top]

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 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 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 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

Icono de flecha usado con el vínculo Volver al principio[Top]

Vea también

Referencia

ALTER TRIGGER (Transact-SQL)

CREATE TRIGGER (Transact-SQL)

DROP TRIGGER (Transact-SQL)

ENABLE TRIGGER (Transact-SQL)

DISABLE TRIGGER (Transact-SQL)

EVENTDATA (Transact-SQL)

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)

Conceptos

Obtener información acerca de los desencadenadores DML