2011-10-26 5 views
0

나는 sp을 통해 데이터로 업데이트되고 삽입되는 테이블 1을 가지고 있습니다.Insert/Update가 Another Trigger에서 왔는지 탐지합니까?

업데이트는 행의 ID (일괄 업데이트가 아님)입니다. 즉, - Single update을 의미합니다.

이 테이블에는 업데이트 된 동일한 레코드의 일부 필드를 업데이트하는 Tg1 - 트리거가 있습니다.

I DONT HAVE ACCESS to TG1 !. 

이 테이블은 TG2를 구축 필자 다른 트리거가 - (DB에 업데이트 기록 후 TG1은 그녀의 일부 필드를 업데이트). SELECT * FROM DELETED ... and insert to table Archive...

문제를 통해 원래의 삽입 기록을 보관 는 그 TG2 캐치입니다 alsoTG1의 이벤트! ? (이 3 레코드를 1

질문의 insted 아카이브 테이블에 삽입 : 에서 TG2는) (그래서 내가 그 사건을 피할 수있을 것입니다 작업이 TG1에서 온 것을 알고 (어쨌든 거기 - 난 내 SP에서 온 이벤트 만이 필요하기 때문이다.)

을 내가 그것을 해결할 수 있습니까? (내가 왜 당신은 마침내으로 기록을 보관하고 싶지 않아요 TG1 ...)

+0

첫 번째 문제는 방아쇠가 결코 하나의 행이 삽입/삭제/변경 될 것이라는 가정에 쓰여지지 않는다는 것입니다. – HLGEM

+0

@HLGEM, 어떻게 해결할 수 있습니까? –

+0

그 qwuestion 대답에 나는 트리거를 볼 필요가있다. 그러나, 당신은 scalar varaiable에 무엇이든 설정해서는 안되며, 대신 set-based statments를 사용한다. 그리고 단일 레코드 업데이트와 여러 레코드의 업데이트로 테스트하십시오. – HLGEM

답변

0

에 액세스 할 필요 없다 테이블에 존재합니까?

그러나 방아쇠를 당기는 명령은 처음 사용하는 방도가됩니다. sp_settriggerorder. 온라인 설명서에서이를 수행하는 방법을 찾으십시오.

+0

대단히 감사하겠습니다. 주문 부분을 검색하겠습니다. 추신. : 다른 테이블로의 백업은 버저 닝을위한 것입니다. 그들은 시간당 스냅 샷이 필요합니다. '1 년 전에 고토로 돌아가서 같은 기록이 어떻게 생겼는지 말해줘.'.... –