클라이언트의 개인 정보를 저장하는 ClientInfo 테이블과 비상 연락처 정보를 저장하는 EmergencyContactInfo라는 테이블이 있습니다. 현재 개인 정보가 변경되면 ClientLog라는 세 번째 테이블에 단일 레코드를 삽입하는 ClientInfo 테이블에 업데이트 트리거가 있습니다. 클라이언트의 비상 연락처 정보가 변경되면 ClientLog 레코드를 만들 수도 있습니다.별도의 테이블에있는 두 개의 트리거가 동시에 실행되는 것을 어떻게 방지합니까?
문제는 사용자가 내 웹 페이지에서 한 번의 저장으로 고객의 개인 정보와 긴급 연락처 정보를 모두 변경할 수 있다는 것입니다. EmergencyContact 테이블에 업데이트 트리거를 넣으면 내 트리거가 모두 실행되고 ClientLog 테이블에 하나만 필요할 때 두 개의 새 레코드가 삽입됩니다.
내가 알고있는 바로는 여러 테이블에 걸쳐있는 업데이트 트리거 같은 것은 없습니다. 고객의 개인 정보와 긴급 연락처 정보가 모두 변경 될 때 단일 레코드를 삽입 할 수있는 대체 방법은 무엇입니까?
콜드 (Cold) 방금하면 트리거를 사용하는 대신 업데이트를 수행하는 절차로 감사를 이동합니까? –
"EmergencyContact 테이블에 업데이트 트리거를 넣으면 내 트리거가 모두 실행되고 ClientLog 테이블에 하나만 필요할 때 두 개의 새 레코드가 삽입됩니다." 왜 그걸 원하니? 두 레코드를 쓰는 것이 나에게 합당한 것 같습니다. ClientLog에 무엇을 쓰고 있습니까? – aquinas
가능한 옵션은 Context_Info입니다. https://stackoverflow.com/questions/174600/is-there-a-way-to-disable-a-sql-server-trigger-for-just-a-particular-scope-of-ex –