SQL 질문과 답변 게시판
Microsoft SQL Server와 관련된 질문과 답변을 올리는 게시판입니다. 궁금하신 내용을 이곳에서 문의하시면 SQLER 분들의 답변을 받으실 수 있습니다. 문의를 하실때에는 최근 작업하신 특이 사항이나, 장애 발생 전 상황을 상세히 올려 주시면 답글을 적어주시는 SQLER분들의 답변이 더 정확할 수 있으니 도움 되시길 바랍니다. 쿼리 문의일 경우, 실제 문제가 재현되는 테이블생성, 샘플데이터 생성 쿼리를 함께 올려 주시면 더 빠르고 정확한 쿼리 문의 응답이 가능합니다.
글 수 5,150
member table
1. userid
2. money
job table
1. userid
2. status
처음 insert -> 업데이트 -> 업데이트 구조에서 처음 insert 될때는 status에 0, 그리고 대기상태 1, 마지막 성공(6)여부 숫자가 업데이트 됨. 마지막 실패시 0,1,6이외 다른 숫자가 업데이트 됨.
job테이블에서 0으로 업데이트 될때 member테이블의 money에서 -20원 돈이 빠져 나가고,
job테이블에서 status가 0.1.6이 아닌 다른 숫자가 들어갈때 member 테이블의 moneydp + 20원이 들어가고.
job테이블에서 0으로 되어 member의 money에서 -20이 되었는데. 데이터 삭제시 member테이블의 money에 + 20원이 들어가는 트리거 부탁합니다..


HELP (F1) 에서
CREATE TRIGGER 문 , COLUMNS_UPDATE 함수 ,UPDATE 함수 로 검색하시면 좋은 예제가 나와 있습니다.
상태구분의 수정이 발생 했을때에 만 MEMBER테이블로 +20,-20하셔야 하는게 아닌지...
0,1,6 이외에 발생하는 구분이 단계로 발생하는지 그때마다 20씩 추가 되는지등을 좀더 명확하게 하셔서 작업 하시면 될듯 합니다.
위하 기술한 내용 가지고 트리거는 간단 합니다.
HELP에 나온 예제와 트리거에서 쓰는 함수를 정확히 이해 하시는게 좋을듯 하고, 트리거는 로직이 잘못되면 심각한 문제가 발생할 수도 있습니다. 업무상은 단순 몇가지 테스트만 한 상태에서 잘못 반영 되게 되면 문제가 되게 됩니다.
위 내용같이 상태는 변하고 그 변경 상태에 따른 히스토리가 없는 상황에서 잘못 반영(로직을 미처 반영 시키지 못했다) 되었다고 했을때 업무상 문제가 발생할 수 도 있습니다. 처리해야 할 로직을 다시 한번 정립 하시는게 좋을듯 합니다.
예제는 HELP ,NAVER, Q/A 에서 검색만 하셔도 많이 나와 있습니다.