나는 다음과 같은 테이블이 있습니다업데이트 된 레코드를 기록 테이블로 이동하는 방법?
CREATE TABLE FE_USER
(
userid int identity (321,4) CONSTRAINT userid_pk PRIMARY KEY,
username varchar(40)
);
해당 기록 테이블은
CREATE TABLE FE_USER_HIST
(
userid int,
username varchar(40),
v_action varchar(50)
);
삽입 또는 업데이트가 FE_USER 테이블에 발생 때마다, 나는 입력 이 새로 삽입 된 기록 또는 필요하다 기록 테이블에 갱신 된 레코드.
어떻게 t-sql에서 트리거를 작성할 수 있습니까? 여기
내 pseducode입니다,하지만 난 오류가 많이 얻을 :CREATE OR REPLACE TRIGGER user_to_hist
AFTER UPDATE OR DELETE
ON FE_USER
FOR EACH ROW
DECLARE
v_action varchar(50);
BEGIN
v_action := CASE WHEN UPDATING THEN 'UPDATE' ELSE 'DELETE' END;
INSERT INTO FE_USER_HIS(userid, username, v_action)
SELECT :OLD.userid, :OLD.username, v_action
FROM .......;
END;
도 취한 조치를 결정하는 트리거 방법이있다 (그리고 쓸모없는 UPDATE() 함수의 사용에 대한 마틴의 올바른 코멘트 당 1 트리거로 통합하기) (즉, 삭제 또는 업데이트)? 나는 단 하나 방아쇠를 당기기 위하여 시도하고, 방법을 생각할 수 없었다. – LittleBobbyTables
@LittleBobby - 당신은 행이 방금 삭제되었는지, 방금 삽입되었거나 또는 둘 다 (업데이트) –
인지를 확인하기 위해 기본 키로 DELETED에 완전히 외부 조인을 삽입 할 수 있습니다 ... PK 자체가 업데이트되면 2 가지 방법으로 생성됩니다 다른 결과. –