안녕하세요,
db는 초보라서 항상 삽질만 하는것 같네요 도움 요청 드립니다.
테이블 하나의 정보가 갱신되면(삽입, 수정, 삭제) 다른 테이블에
업데이트 정보를 추가해 주려고 합니다.
하나의 데이터가 수정되면 트리거가 잘 동작하게는 생성했는데,
복수의 row 삭제 등과 같은 경우 루핑을 하면서 인서트해야 할것 같은데,
어떤 식으로 접근해야 할지 모르겠네요.
루핑하면서 deleted 테이블에서 순차적으로 데이터를 쿼리하는 쿼리문이 따로 있는건가요.?
한방에 처리할 수 있는 방법이 따로 있나요.?
궁극적으로 하려고 하는 내용은
프로그램에서 주기적으로 특정 테이블의 데이터와 동기화하려고하는데,
전체 데이터 쿼리해고, 비교해서, 갱신하는 것은 비율적일것 같아 트리거를 생각하게 되었습니다.
트리거 첨 써보는데 쉽지 않네요. ^^
사용자 테이블의 경우와 완벽히 동일합니다. 커서 쓸 필요가 없습니다.
어제 직원한테 제가 한 말이 있는데요.
SQL SERVER에서 "커서"라는 기능은 없다고 생각하라고 했습니다. ㅎㅎ
하나의 데이터가 수정되면 트리거를 이용해서 업데이트 된 정보를 추가하신다고 했는데
INSERTED와 DELETED를 적당하게 INNER JOIN해서 사용하시면 되겠네요.
UPDATE에서 FROM절에 JOIN해서 쓸수가 있거든요.
update tbla
set col1 = deleted.col1
from tbla inner join deleted on tbla.col1 = deleted.col1