테이블 purch_ord_hdr
의 열 src_system_id
이 "S"에서 "D"로 변경 될 때마다 보고서를 트리거해야하는 시나리오가 있습니다. "."S"에서 "D"까지 열 값 변경을 기반으로 트리거를 만드는 방법
값이 변경 될 때마다 동작은 insert
또는/및 update
에 따라 트리거되어야합니다. 아무리해도 insert
또는 update
성명입니다.
테이블 purch_ord_hdr
의 열 src_system_id
이 "S"에서 "D"로 변경 될 때마다 보고서를 트리거해야하는 시나리오가 있습니다. "."S"에서 "D"까지 열 값 변경을 기반으로 트리거를 만드는 방법
값이 변경 될 때마다 동작은 insert
또는/및 update
에 따라 트리거되어야합니다. 아무리해도 insert
또는 update
성명입니다.
실행중인 IDS의 버전을 알려 주어야합니다 (테이블 이름과 기본 키 열 이름을 포함하도록 수정).
그럼에도 불구하고이 테스트 케이스를 확인하고 적용하십시오.
CREATE TABLE tab1(
col1 CHAR(1)
);
CREATE TABLE tab1_hist(
col1_old CHAR(1),
col1_new CHAR(1),
user VARCHAR(32),
event CHAR(1),
date DATETIME YEAR TO SECOND
);
CREATE PROCEDURE sp_ti_tab1(val CHAR(1))
INSERT INTO tab1_hist (col1_new, user, event, date)
VALUES (val, USER, 'I', CURRENT);
END PROCEDURE;
CREATE PROCEDURE sp_tu_tab1(val_o CHAR(1), val_n CHAR(1))
INSERT INTO tab1_hist (col1_old, col1_new, user, event, date)
VALUES (val_o, val_n, USER, 'U', CURRENT);
END PROCEDURE;
CREATE TRIGGER ti_tab1
INSERT OF col1 ON tab1
REFERENCING NEW AS new
FOR EACH ROW WHEN(new.col1 = 'D')
(EXECUTE PROCEDURE sp_ti_tab1(new.col1));
CREATE TRIGGER tu_tab1
UPDATE OF col1 ON tab1
REFERENCING NEW AS new OLD AS old
FOR EACH ROW WHEN(new.col1 = 'D' AND old.col1 = 'A')
(EXECUTE PROCEDURE sp_tu_tab1(old.col1, new.col1));
버전, 그러나 나는 IBM Informix Dynamic Server 버전 12.10.FC4W1WE AIX 서버 –
에서 작동 중입니다. –
SQL Server의 경우,이 시도
create trigger on [Table name here]
for insert, update
as
Set NoCount On
if Exists
(Select * From inserted I
left join deleted d
on d.PKCol = i.PKCol -- < replace PKCol w/name of Prim Key
Where i.src_system_id = 'D'
and isnull(d.src_system_id, 'S') = 'S')
Begin
-- Here put code to do whatever you want trigger to do
End
Informix와 다른 점은 어느 정도입니까 –
어떤 사용자가 S에서 D로 값을 변경하는지 감지 할 수 있습니까 –
잘 모르겠 음 Informix –
우선 삽입물 인 경우 아무 것도 변경되지 않습니다. 'D'를 사용하여 새 행을 만들면 트리거가 작동하도록 하시겠습니까? –
좋습니다. 보유하고있는 프로젝트의 비즈니스 규칙을 공유했거나 질문이 있습니까? 우리는 기꺼이 도와 드리 겠지만 여기 주변의 많은 사람들이 당신을 위해 당신의 일을 기꺼이하지 않을 것입니다. 여기서 시작하는 것이 좋습니다. http://spaghettidba.com/2015/04/24/how-to-post-a-t-sql-question-on-a-public-forum/ –
MS SQL Server 또는 Informix를 사용하고 있습니까? – jarlh