Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Cara Menonaktifkan Semua Pemicu di Database SQL Server

Terkadang kami memiliki persyaratan bahwa kami perlu menonaktifkan semua pemicu di Database SQL Server. Kita dapat menggunakan Kursor di TSQL Untuk mengulang daftar Pemicu dan kemudian menonaktifkannya.

Skrip di bawah ini dapat digunakan untuk menonaktifkan semua pemicu di Database SQL Server.

GUNAKAN [Database]

PERGI
MENYATAKAN @TriggerName SEBAGAI VARCHAR(500)
DECLARE @TableName SEBAGAI VARCHAR(500)
DECLARE @SchemaName SEBAGAI VARCHAR(100)
--Menonaktifkan Semua Pemicu dalam Database di SQL Server
DECLARE DisableTrigger CURSOR FOR
PILIH TBL.name AS TableName,
Schema_name(TBL.schema_id) AS Table_SchemaName,
TRG .name AS TriggerName
DARI sys.triggers TRG
INNER JOIN sys.tables TBL
PADA TBL.OBJECT_ID =TRG.parent_id
AND TRG.is_disabled=0
DAN TBL.is_ms_shipped=0
BUKA DisableTrigger
FETCH Next FROM DisableTrigger INTO @TableName,@SchemaName,@TriggerName
SELAMA @@FETCH_STATUS =0
BEGIN
DECLARE @SQL VARCHAR(MAX)=NU LL

SET @SQL='Nonaktifkan Pemicu ' + @TriggerName +' ON '+@NamaSkema+'.'+@NamaTabel

EXEC (@SQL)
PRINT 'Trigger ::' + @TriggerName + 'disable pada '+@SchemaName+'.'+@TableName
PRINT @SQL

FETCH Next FROM DisableTrigger INTO @TableName,@SchemaName, @TriggerName
END

CLOSE DisableTrigger
DEALLOCATE DisableTrigger



Untuk memeriksa apakah semua pemicu dinonaktifkan dengan benar di SQL Database Server, gunakan kueri di bawah ini

SELECT TBL.name AS TableName,
Schema_name(TBL.schema_id) AS Table_SchemaName,
TRG.name AS TriggerName,
TRG. parent_class_desc,
KASUS
KETIKA TRG.is_disabled =0 MAKA 'Aktifkan'
ELSE 'Nonaktifkan'
AKHIR SEBAGAI TRG_Status
DARI sys.triggers TRG
INNER GABUNG TBL sys.tables
DI TBL.OBJECT_ID =TRG.parent_id
AND trg.is_disabled=1 --gunakan filter ini untuk mendapatkan Pemicu yang Dinonaktifkan

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. 4 Cara untuk Memeriksa Baris Duplikat di SQL Server

  2. 4 Cara Mendapatkan Riwayat Pekerjaan SQL Server

  3. Tambahkan Leading &Trailing Zeros di SQL Server

  4. Gunakan PARSENAME() untuk Mengembalikan Bagian dari Nama Objek di SQL Server

  5. Hitung jam kerja antara dua tanggal