2012-08-01 2 views
0

처음으로 트리거를 만들려고합니다. 동일한 테이블 내의 다른 필드가 수정되면 테이블 (Opps)의 여러 필드를 업데이트하고 싶습니다. 방아쇠를 당기는 가장 좋은 방법인지는 잘 모르겠지만 생각합니다. 업데이트 할 필드는 원래 필드 (스테이지)가 수정 된 날짜 인 두 번째 필드가있는 (currStage) 및 (stageDate)입니다. 말이 돼?트리거 만들기

지금 당장 도움이 필요하시면 도움을 받으시기 바랍니다.

+4

어느 RDBMS입니까? SQL 서버, MySQL, 오라클, ...? – Yuck

+0

일반적으로 테이블 변경 사항을 이해하려면 두 번째 테이블에 로그온하는 것이 좋습니다. 또는 테이블에 대한 가장 최근의 변경 사항에 대해서만 관심을 가질 것입니다 (예 : 다른 변경 5 분 전에 일어난) –

+0

그래서 그것은 기본적으로 SQL db와 대화하는 사용자 지정 Outlook 양식입니다. 그래서 양식이 열려있는 경우 원하는대로 동작하도록 양식 코드를 작성했습니다. 하지만 대량 업데이트 도구를 사용하면 코드를 사용하지 않고 데이터를 강제로로드합니다. 그래서 SQL 트리거를 사용하여 변경 사항을 적용하려고합니다. 나는 한 테이블 만 신경 쓰지만, 모든 업데이트는 이루어졌다. 그 질문에 대답합니까? – KnowledgeSeeker

답변

0

나는 API를 사용하여 업데이트, 삽입 및 삭제를위한 저장 프로 시저를 만드는 것이 더 나은 방법이라고 생각합니다. 그리고 갱신은 다른 테이블을 갱신하기 위해 UPDATE 프로 시저를 사용합니다. 트리거를 과도하게 사용하는 것은 좋지 않습니다. API와 트리거 접근 방식을 비교해보기 위해 this

+0

API를 사용할 수있는 위치에 있지 않습니다. 불행히도 트리거를 사용하는 것이 유일한 방법입니다. – KnowledgeSeeker

0

사람들은 때때로 고유 한 비즈니스 요구 사항을 가지고 있으며 이러한 상황 중 하나에있는 것처럼 들릴 수 있습니다.
AFTER INSERT 트리거를 사용하여 필드를 새 값으로 업데이트 할 수 있습니다. 트리거는

CREATE TRIGGER update_stages_MyTable 
ON MyTable 
AFTER INSERT 
BEGIN 
    UPDATE MyTable 
    SET currStage = 'whatever value I want', stageDate = getdate() 
    WHERE Stage = 'the stage Ijust updated' 
END; 

이 말이하고 비즈니스 요구 사항을 충족하는지 알려줘 대해 UPDATE/SET을/할 수있는 발사합니다.

관련 문제