Search

2015년 12월 28일 월요일

[Database] [MSSQL] 트리거를 이용해 업데이트 시간 기록하기.

* 컬럼의 Default 값에 getDate()함수로 생성 시간을 자동으로 입력하는 것은 이미 예전 포스팅을 통해 다루어봤다. (https://oskardevelopers.blogspot.kr/2015/10/it-database-sql-auto-incrementai-date_14.html)

* INSERT가 아닌, UPDATE시점의 시간을 기록하기 위해서는 어떻게 해야할까?

#1. 먼저 대상이 되는 테이블(A_Table)에 update_datetime이라는 컬럼을 하나 추가하자.

ALTER TABLE A_Table ADD update_datetime DATETIME NULL;

#2. UPDATE시에만 동작하는 트리거를 다음과 같이 생성해주자. (아래는 Column_1과 Column_2를 모두 기본값으로 갖는 경우를 예로 들었다.)

CREATE TRIGGER tr_update_datetime
ON A_Table
AFTER UPDATE
AS
  BEGIN
      UPDATE A_Table
      SET     update_datetime = getDate()
      WHERE Column_1 + Column_2 IN (SELECT DISTINCT Column_1 + Column_2 FROM Inserted)

  END


댓글 없음:

댓글 쓰기