Скриптът по-долу може да се използва за деактивиране на всички тригери в базата данни на SQL Server.
ИЗПОЛЗВАЙТЕ [База данни]
GO
ДЕКЛАРИРАНЕ @TriggerName КАТО VARCHAR(500)
ДЕКЛАРИРАНЕ @TableName КАТО VARCHAR(500)
ДЕКЛАРИРАНЕ @SchemaName КАТО VARCHAR(100)
--Деактивирайте всички тригери в база данни в SQL Server
ДЕКЛАРИРАЙТЕ DisableTrigger CURSOR ЗА
ИЗБЕРЕТЕ TBL.name КАТО TableName,
Schema_name(TBL.schema_id) КАТО Table_SchemaName,
TRG .name AS TriggerName
ОТ sys.triggers TRG
INNER JOIN sys.tables TBL
ON TBL.OBJECT_ID =TRG.parent_id
И TRG.is_disabled=0
И TBL.is_ms_shipped=0
ОТВОРЕТЕ DisableTrigger
ИЗВЛЕЧЕТЕ СЛЕДВАЩО ОТ DisableTrigger В @TableName,@SchemaName,@TriggerName
ДОКАТО @@FETCH_STATUS =0
BEGIN
ДЕКЛАРИРАНЕ @SQL VARCHAR(MAX)=NU LL
SET @SQL='Disable Trigger ' + @TriggerName +' ON '+@SchemaName+'.'+@TableName
EXEC (@SQL)
PRINT 'Trigger ::' + @TriggerName + 'е деактивиран на '+@SchemaName+'.'+@TableName
PRINT @SQL
ИЗВЛЕЧИ СЛЕДВАЩО ОТ DisableTrigger В @TableName,@SchemaName, @TriggerName
END
CLOSE DisableTrigger
DEALLOCATE DisableTrigger
За да проверите дали всички тригери са деактивирани правилно в SQL Сървърна база данни, използвайте по-долу заявка
ИЗБЕРЕТЕ TBL.name КАТО име на таблица,
Schema_name(TBL.schema_id) AS Table_SchemaName,
TRG.name AS TriggerName,
TRG. parent_class_desc,
CASE
КОГАТО TRG.is_disabled =0 THEN 'Enable'
ELSE 'Disable'
END AS TRG_Status
ОТ sys.triggers TRG
INNER ПРИСЪЕДИНЕТЕ се към sys.tables TBL
ON TBL.OBJECT_ID =TRG.parent_id
И trg.is_disabled=1 --използвайте този филтър, за да получите деактивирани тригери