Níže uvedený skript lze použít k deaktivaci všech spouštěčů v databázi SQL Server.
POUŽÍVEJTE [Databáze]
GO
DECLARE @TriggerName JAKO VARCHAR(500)
DECLARE @TableName JAKO VARCHAR(500)
DECLARE @SchemaName JAKO VARCHAR(100)
---Zakázat všechny spouštěče v databázi na serveru SQL
DEKLAROVAT KURZOR DisableTrigger PRO
VYBRAT TBL.name JAKO Název_tabulky,
Název_schematu(TBL.schema_id) JAKO Název_schéma_tabulky,
TRG .name AS TriggerName
OD 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
OTEVŘÍT DisableTrigger
FETCH Next FROM DisableTrigger DO @TableName,@SchemaName,@TriggerName
WHILE @@FETCH_STATUS =0
BEGIN
DECLARE @SQL VARCHAR(MAX)=NU LL
SET @SQL='Zakázat Trigger ' + @TriggerName +' ON '+@SchemaName+'.'+@TableName
EXEC (@SQL)
PRINT 'Trigger ::' + @TriggerName + 'je zakázáno na '+@SchemaName+'.'+@TableName
PRINT @SQL
NAČÍST Další Z DisableTrigger DO @TableName,@SchemaName, @TriggerName
KONEC
ZAVŘÍT DisableTrigger
DEALLOCATE DisableTrigger
Chcete-li zkontrolovat, zda jsou všechny spouštěče správně deaktivovány v SQL Databáze serveru, použijte níže uvedený dotaz
SELECT 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 'Enable'
ELSE 'Disable'
KONEC JAKO TRG_Status
OD sys.triggers TRG
INNER PŘIPOJTE SE k sys.tables TBL
ON TBL.OBJECT_ID =TRG.parent_id
AND trg.is_disabled=1 --použijte tento filtr k získání deaktivovaných spouštěčů