본문 바로가기
DataBase/MsSql

MSSQL Trigger enable, disable 사용 방법 및 설명

by 아우럼 2024. 6. 27.
반응형

MSSQL Trigger는 enable, disable을 통해서 Trigger 동작을 조절할 수 있습니다.

 

Trigger enable, disable 설명.

  • Trigger를 잠시 off가 필요한 경우 disable 명령어를 통해서 사용합니다.
  • 은행이나 증권사의 경우 정기 점검 시간에 테이블에 대량을 data를 upload 하면 trigger가 실행되지 않도록 하는 경우가 발생합니다.
  • 그럼, Trigger를 disable 시킨 후 작업을 시작합니다.
  • 작업을 완료하면 다시 서비스를 위해서 triggers를 enable 할 수 있습니다.

Trigger enable, disable 사용법

Trigger enable, disable의 syntax는?

-- Syntax
[ENABLE | DISABLE]TRIGGER [Trigger_Name | ALL] ON [Object_Name | DATABASE | ALL SERVER]
  • ENABLE:정지된 triggers를 사용할 때 사용합니다.
  • DISABLE: 사용하고 있는 Trigger를 정지할 때 사용합니다.
  • Trigger_Name | ALL: Trigger_Name에는 한 개의 trigger만 정지할 때 사용하고, ALL은 전체를 변경할 때 사용합니다.
  • Object_Name: Object_Name은 보통 테이블 이름이 사용됩니다. 특정 테이블의 trigger 상태를 변경할 때 사용합니다.
  • DATABASE: DATABASE 단위로 Trigger 상태를 변경할 수 있습니다.
  • ALL SERVER: 서버 전체의 Trigger 상태를 변경할 수 있습니다.

Trigger enable, disable 설명입니다.
Trigger enable, disable 설명입니다.

Trigger enable, disable 소스 코드.

DROP TABLE IF EXISTS AurumGuide_ENABLE;
-- Create Sample Table 
DROP TABLE IF EXISTS AurumGuide_ENABLE; 
CREATE TABLE AurumGuide_ENABLE (
    AurumId           INT NOT NULL,
    AurumNm           VARCHAR(255) NOT NULL,
    AurumAge          INT  NULL,
    AurumAddress      VARCHAR(500)  NULL
);
go
DROP TABLE IF EXISTS AurumGuide_ENABLE_LOG; 
CREATE TABLE AurumGuide_ENABLE_LOG (
    AurumId           INT NOT NULL,
    AurumNm           VARCHAR(255)  NULL,
    AurumEvent        VARCHAR(255)  NULL,
    AurumDateTime          datetime  NULL     
);
go 
 
CREATE OR ALTER TRIGGER dbo.TR_AurumGuide_ENABLE
ON dbo.AurumGuide_ENABLE
AFTER INSERT
AS
INSERT INTO dbo.AurumGuide_ENABLE_LOG
		(AurumId,AurumNm, AurumEvent, AurumDateTime)
SELECT AurumId,AurumNm,'INSERT', GETDATE() FROM inserted;
	 
-- Check status.
SELECT name,
      parent_class_desc,
      type_desc,
      is_disabled
FROM sys.triggers
WHERE name = 'TR_AurumGuide_ENABLE';

-- DISABLE /ENABLE.
-- CASE 1.
DISABLE TRIGGER TR_AurumGuide_ENABLE ON AurumGuide_ENABLE;
ENABLE TRIGGER TR_AurumGuide_ENABLE ON AurumGuide_ENABLE;

-- DISABLE /ENABLE.
-- CASE 2.
ENABLE TRIGGER ALL ON dbo.AurumGuide_ENABLE;
DISABLE TRIGGER ALL ON dbo.AurumGuide_ENABLE;

 

반응형