Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Jak wyłączyć wszystkie wyzwalacze w bazie danych SQL Server

Czasami mamy wymóg, że musimy wyłączyć wszystkie wyzwalacze w bazie danych SQL Server. Możemy użyć kursora w TSQL, aby przejść przez listę wyzwalaczy, a następnie je wyłączyć.

Poniższy skrypt może być użyty do wyłączenia wszystkich wyzwalaczy w bazie danych SQL Server.

UŻYJ [Baza danych]

GO
DECLARE @TriggerName AS VARCHAR(500)
DECLARE @TableName AS VARCHAR(500)
DECLARE @SchemaName AS VARCHAR(100)
--Wyłącz wszystkie wyzwalacze w bazie danych w programie SQL Server
DECLARE DisableTrigger CURSOR FOR
SELECT TBL.name AS TableName,
Schema_name(TBL.schema_id) AS Table_SchemaName,
TRG .name AS Nazwa wyzwalacza
Z sys.triggers TRG
DOŁĄCZENIE WEWNĘTRZNE sys.tables TBL
NA TBL.OBJECT_ID =TRG.parent_id
AND TRG.is_disabled=0
AND TBL.is_ms_shipped=0
OPEN DisableTrigger
FETCH Next FROM DisableTrigger INTO @TableName,@SchemaName,@TriggerName
WHILE @@FETCH_STATUS =0
BEGIN
DECLARE @SQL VARCHAR(MAX)=NU LL

SET @SQL='Wyłącz wyzwalacz ' + @NazwaWyzwalacza +' ON '+@NazwaSchematu+'.'+@NazwaTabeli

EXEC (@SQL)
PRINT 'Wyzwalacz ::' + @NazwaWyzwalacza + 'jest wyłączony dla '+@NazwaSchematu+'.'+@NazwaSchematu
PRINT @SQL

FETCH Next FROM DisableTrigger INTO @NazwaSchematu,@NazwaSchematu, @TriggerName
END

CLOSE DisableTrigger
DEALLOCATE DisableTrigger



Aby sprawdzić, czy wszystkie wyzwalacze są poprawnie wyłączone w SQL Baza danych serwera, użyj poniższego zapytania

SELECT nazwa_tabeli AS nazwa_tabeli,
nazwa_schematu(identyfikator_schematu_tabeli) AS nazwa_schematu_tabeli,
TRG.nazwa_nazwa_wyzwalacza,
TRG. parent_class_desc,
PRZYPADEK
KIEDY TRG.is_disabled =0 THEN 'Włącz'
JESZCZE 'Wyłącz'
KONIEC JAKO TRG_Status
Z sys.triggers TRG
WEWNĘTRZNY DOŁĄCZ do sys.tables TBL
NA TBL.OBJECT_ID =TRG.parent_id
ORAZ trg.is_disabled=1 --użyj tego filtra, aby uzyskać wyłączone wyzwalacze
  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Replikacja SQL Server wymaga rzeczywistej nazwy serwera, aby nawiązać połączenie z serwerem

  2. Jak mogę połączyć się z SQL Server przy użyciu zintegrowanych zabezpieczeń ze sterownikiem JDBC?

  3. Jak włączyć CDC w zestawie tabel LUB włączyć we wszystkich tabelach w bazie danych w programie SQL Server — samouczek dotyczący programu SQL Server

  4. Napraw uszkodzoną bazę danych SQL podczas problemu z uaktualnieniem

  5. Python wywołuje procedurę składowaną sql-server z parametrem o wartości tabeli