mssql 트리거(update) 질문입니다 0 3 3,548

by 라면용 [SQL Query] mssql [2024.03.15 13:37:28]


특정 값(1)이 들어오면 자동으로 해당 컬럼을 업데이트 해주는 트리거를 작성중인데 맞는지 확인 부탁드리겠습니다!

 

다른값에서 state 1로 업데이트시 트리거 통해서 state 컬럼에 5로 업데이트를 하고 싶습니다

 

CREATE TRIGGER REQUEST ON REQQ

 AFTER UDATE 

AS

 DECLARE @state varchar(10)

 SELECT @state = '5' FROM INSERTED

 

BEGIN

  UPDATE REQQ SET state = @state WHERE state = '1'

END

by 마농 [2024.03.15 14:13:41]

현재 입력된 값이 1 인지 확인하는 프로세스(IF 문 등)가 있어야 하고
있을 때에만 5로 업데이트 하면 됩니다.
업데이트 조건은 상태 조건이 아닌 키(PK) 조건이어야 하구요.


by 라면용 [2024.03.15 14:30:26]

감사합니다 말씀해주신데로 수정을 했는데 확인 한 번 부탁드리겠습니다!

(해당 테이블에 PK가 인덱스 번호라 where절을 아래처럼 했습니다)

 

CREATE TRIGGER REQUEST ON REQQ

 

 AFTER UDATE 

 

AS

 

 DECLARE @state varchar(10)

 

 SELECT @state = ' ' FROM INSERTED

 

 

IF @state = '1'

BEGIN

  UPDATE REQQ SET state = '5' WHERE 1=1

END


by 마농 [2024.03.15 14:34:48]
-- 문법이 맞는지는 장담 못하지만
-- 이런 느낌으로 작성해야 합니다.

CREATE TRIGGER REQUEST ON REQQ
AFTER UPDATE 
AS
DECLARE @state varchar(10)
DECLARE @PK varchar(10)
SELECT @state = state
     , @PK    = pk
  FROM INSERTED
IF @state = '1'
BEGIN
  UPDATE REQQ
     SET state = '5'
   WHERE pk = @PK
END

 

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입