Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Cách tắt tất cả các trình kích hoạt trong cơ sở dữ liệu SQL Server

Đôi khi chúng tôi có yêu cầu rằng chúng tôi cần phải tắt tất cả các trình kích hoạt trong Cơ sở dữ liệu SQL Server. Chúng ta có thể sử dụng Con trỏ trong TSQL Để lặp qua danh sách các Trình kích hoạt và sau đó vô hiệu hóa chúng.

Có thể sử dụng tập lệnh dưới đây để tắt tất cả các trình kích hoạt trong Cơ sở dữ liệu SQL Server.

SỬ DỤNG [Cơ sở dữ liệu]

ĐI
DECLARE @TriggerName AS VARCHAR (500)
DECLARE @TableName AS VARCHAR (500)
DECLARE @SchemaName AS VARCHAR (100)
- Tắt tất cả trình kích hoạt trong cơ sở dữ liệu trong SQL Server
DECLARE DisableTrigger CURSOR FOR
CHỌN TBL.name AS TableName,
Schema_name (TBL.schema_id) AS Table_SchemaName,
TRG .name AS TriggerName
TỪ sys.triggers TRG
INNER THAM GIA sys.tables TBL
TRÊN TBL.OBJECT_ID =TRG.parent_id
VÀ TRG.is_disabled =0
VÀ TBL.is_ms_shipped =0
MỞ DisableTrigger
TÌM KIẾM Tiếp theo TỪ DisableTrigger VÀO @ TableName, @ SchemaName, @ TriggerName
WHILE @@ FETCH_STATUS =0
BEGIN
DECLARE @SQL VARCHAR (MAX) =NU LL

SET @ SQL ='Tắt trình kích hoạt' + @TriggerName + 'ON' + @ SchemaName + '.' + @ TableName

EXEC (@SQL)
PRINT 'Trigger ::' + @TriggerName + 'bị tắt trên' + @ SchemaName + '.' + @ TableName
PRINT @SQL

TÌM HIỂU tiếp theo TỪ DisableTrigger INTO @ TableName, @ SchemaName, @TriggerName
HẾT

ĐÓNG DisableTrigger
DEALLOCATE DisableTrigger



Để kiểm tra xem tất cả các trình kích hoạt đã được tắt đúng cách trong SQL chưa Cơ sở dữ liệu máy chủ, sử dụng truy vấn bên dưới

CHỌN TBL.name AS TableName,
Schema_name (TBL.schema_id) AS Table_SchemaName,
TRG.name AS TriggerName,
TRG. parent_class_desc,
TRƯỜNG HỢP
KHI TRG.is_disabled =0 THÌ 'Bật'
ELSE 'Tắt'
KẾT THÚC NHƯ TRG_Status
TỪ sys.triggers TRG
INNER THAM GIA sys.tables TBL
TRÊN TBL.OBJECT_ID =TRG.parent_id
AND trg.is_disabled =1 - sử dụng bộ lọc này để nhận Trình kích hoạt bị vô hiệu hóa
  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. truy vấn sql để trả về sự khác biệt giữa hai bảng

  2. T-SQL:Làm tròn đến khoảng thời gian 15 phút gần nhất

  3. Cách tạo kế hoạch thực thi trong SQL Server

  4. SQL Server 2016:sys.dm_exec_osystem_stats

  5. Làm cách nào để tải tệp XML vào cơ sở dữ liệu bằng gói SSIS?