Herkese merhaba,
Bu yazıda SQL Server’da tüm triggerları disable etmek hakkında bilgi vereceğim.
SQL Server’da bazı durumlarda tüm triggerları disable etmek isteyebiliriz.
Aşağıdaki kod yardımıyla bu işlemi rahatlıkla yapabilirsiniz.
DECLARE @sql VARCHAR(500),
@tableName VARCHAR(128),
@triggerName VARCHAR(128),
@tableSchema VARCHAR(128);
DECLARE triggerCursor CURSOR FOR
SELECT so_tr.name AS TriggerName,
so_tbl.name AS TableName,
t.TABLE_SCHEMA AS TableSchema
FROM sysobjects so_tr
INNER JOIN sysobjects so_tbl
ON so_tr.parent_obj = so_tbl.id
INNER JOIN INFORMATION_SCHEMA.TABLES t
ON t.TABLE_NAME = so_tbl.name
WHERE so_tr.type = 'TR'
ORDER BY so_tbl.name ASC,
so_tr.name ASC;
OPEN triggerCursor;
FETCH NEXT FROM triggerCursor
INTO @triggerName,
@tableName,
@tableSchema;
WHILE (@@FETCH_STATUS = 0)
BEGIN
SET @sql = 'DISABLE TRIGGER [' + @triggerName + '] ON ' + @tableSchema + '.[' + @tableName + ']';
PRINT 'Trigger Durumu - ' + @sql;
EXECUTE (@sql);
FETCH NEXT FROM triggerCursor
INTO @triggerName,
@tableName,
@tableSchema;
END;
CLOSE triggerCursor;
DEALLOCATE triggerCursor;
Kodu çalıştırdığınızda aşağıdaki gibi bir sonuç alacaksınız.
Görüldüğü üzere tüm triggerlar disable edilmiş oldu.
Herkese çalışma hayatında ve yaşamında başarılar kolaylıklar.
450 Kez Okundu