Nedenstående script kan bruges til at deaktivere alle triggere i SQL Server-databasen.
BRUG [Database]
GO
DECLARE @TriggerName SOM VARCHAR(500)
DECLARE @TableName AS VARCHAR(500)
DECLARE @SchemaName AS VARCHAR(100)
--Deaktiver alle triggere i en database i SQL Server
ERKLÆR DisableTrigger CURSOR FOR
SELECT TBL.name AS TableName,
Schema_name(TBL.schema_id) AS Table_SchemaName,
TRG .name AS TriggerName
FRA sys.triggers TRG
INNER JOIN sys.tables TBL
PÅ TBL.OBJECT_ID =TRG.parent_id
OG TRG.is_disabled=0
OG TBL.is_ms_shipped=0
ÅBN DisableTrigger
FETCH Næste FRA DisableTrigger INTO @TableName,@SchemaName,@TriggerName
MENS @@FETCH_STATUS =0
BEGIN
DECLARE @SQL VARCHAR(MAX)=NU LL
SET @SQL='Deaktiver Trigger ' + @TriggerName +' PÅ '+@SchemaName+'.'+@TableName
EXEC (@SQL)
UDSKRIV 'Trigger ::' + @TriggerName + 'er disabled on '+@SchemaName+'.'+@TableName
PRINT @SQL
FETCH Next FROM DisableTrigger INTO @TableName,@SchemaName, @TriggerName
END
LUK DisableTrigger
DEALLOCATE DisableTrigger
For at kontrollere, om alle triggere er deaktiveret korrekt i SQL Serverdatabase, brug nedenstående forespørgsel
SELECT TBL.name AS TableName,
Schema_name(TBL.schema_id) AS Table_SchemaName,
TRG.name AS TriggerName,
TRG. parent_class_desc,
CASE
NÅR TRG.is_disabled =0 SÅ 'Aktiver'
ELSE 'Disable'
END AS TRG_Status
FRA sys.triggers TRG
INNER JOIN sys.tables TBL
PÅ TBL.OBJECT_ID =TRG.parent_id
OG trg.is_disabled=1 --brug dette filter til at få deaktiverede triggere