Skript nedan kan användas för att inaktivera alla triggers i SQL Server Database.
ANVÄND [Databas]
GO
DECLARE @TriggerName SOM VARCHAR(500)
DECLARE @TableName AS VARCHAR(500)
DECLARE @SchemaName AS VARCHAR(100)
--Inaktivera alla utlösare i en databas i SQL Server
DECLARE DisableTrigger CURSOR FOR
SELECT TBL.name AS TableName,
Schema_name(TBL.schema_id) AS Table_SchemaName,
TRG .name AS TriggerName
FRÅN sys.triggers TRG
INNER JOIN sys.tables TBL
PÅ TBL.OBJECT_ID =TRG.parent_id
OCH TRG.is_disabled=0
OCH TBL.is_ms_shipped=0
ÖPPNA DisableTrigger
HÄMTA Nästa FRÅN DisableTrigger INTO @TableName,@SchemaName,@TriggerName
MED @@FETCH_STATUS =0
BÖRJA
DECLARE @SQL VARCHAR(MAX)=NU LL
SET @SQL='Inaktivera trigger ' + @TriggerName +' PÅ '+@SchemaName+'.'+@TableName
EXEC (@SQL)
SKRIV UT 'Trigger ::' + @TriggerName + 'är inaktiverat på '+@SchemaName+'.'+@TableName
PRINT @SQL
HÄMTA Nästa FRÅN DisableTrigger INTO @TableName,@SchemaName, @TriggerName
END
STÄNG DisableTrigger
DEALLOCATE DisableTrigger
För att kontrollera om alla utlösare är inaktiverade korrekt i SQL Serverdatabas, använd nedanstående fråga
SELECT TBL.name AS TableName,
Schema_name(TBL.schema_id) AS Table_SchemaName,
TRG.name AS TriggerName,
TRG. parent_class_desc,
FALL
NÄR TRG.is_disabled =0 DÅ 'Aktivera'
ANNAT 'Avaktivera'
AVSLUTA SOM TRG_Status
FRÅN sys.triggers TRG
INNER JOIN sys.tables TBL
PÅ TBL.OBJECT_ID =TRG.parent_id
OCH trg.is_disabled=1 --använd det här filtret för att få inaktiverade utlösare