El siguiente script se puede usar para deshabilitar todos los disparadores en la base de datos de SQL Server.
USE [Base de datos]
GO
DECLARE @TriggerName COMO VARCHAR(500)
DECLARE @TableName COMO VARCHAR(500)
DECLARE @SchemaName COMO VARCHAR(100)
--Deshabilitar todos los disparadores en una base de datos en SQL Server
DECLARE DisableTrigger CURSOR FOR
SELECT TBL.name AS TableName,
Schema_name(TBL.schema_id) AS Table_SchemaName,
TRG .name AS TriggerName
FROM sys.triggers TRG
INNER JOIN sys.tables TBL
ON TBL.OBJECT_ID =TRG.parent_id
AND TRG.is_disabled=0
AND TBL.is_ms_shipped=0
ABRIR DisableTrigger
FETCH Siguiente DESDE DisableTrigger EN @TableName,@SchemaName,@TriggerName
MIENTRAS @@FETCH_STATUS =0
COMENZAR
DECLARE @SQL VARCHAR(MAX)=NU LL
SET @SQL='Disable Trigger ' + @TriggerName +' ON '+@SchemaName+'.'+@TableName
EXEC (@SQL)
PRINT 'Trigger ::' + @TriggerName + 'está deshabilitado en '+@SchemaName+'.'+@TableName
PRINT @SQL
FETCH Next FROM DisableTrigger INTO @TableName,@SchemaName, @TriggerName
END
CLOSE DisableTrigger
DEALLOCATE DisableTrigger
Para verificar si todos los disparadores están deshabilitados correctamente en SQL Base de datos del servidor, utilice la siguiente consulta
SELECCIONE TBL.name AS TableName,
Schema_name(TBL.schema_id) AS Table_SchemaName,
TRG.name AS TriggerName,
TRG. parent_class_desc,
CASE
WHEN TRG.is_disabled =0 THEN 'Habilitar'
ELSE 'Deshabilitar'
END AS TRG_Status
FROM sys.triggers TRG
INNER ÚNASE a sys.tables TBL
EN TBL.OBJECT_ID =TRG.parent_id
Y trg.is_disabled=1 --use este filtro para obtener activadores deshabilitados