2011-07-06 6 views
0

테이블에 AFTER INSERT, UPDATE 트리거가 있고 트리거가 실패하면 (오류가 발생 함) 원본 INSERT 또는 UPDATE이 실패하게됩니까? 나는 방아쇠가 (그러므로 AFTER 키워드) 후에 일어난다는 것을 알고있다, 그러나 거래 (암시 적 또는 명백한), 등등을 중단 하는가?'삽입/업데이트 후'트리거에 의해 발생한 오류로 인해 삽입/업데이트가 실패합니까?

특히 SQL Server 2005에 대해서는,하지만 2000, 2005 및 2008에 대한 정보에 관심이 있습니다. TIA.

답변

0

아, 그것은 인용 적어도 SQL Server 2000에서,하지 말 an article을 발견

당신은이 트리거 컨텍스트 당신이 트리거에서, 또는 저장 프로 시저에있을 때, 사용자 - 트리거로부터 직접 또는 간접적으로 호출 된 동적 SQL 블록 또는 정의 함수 또는 블록. 즉, 호출 스택의 어딘가에 트리거가 있습니다. 트리거 컨텍스트에있는 경우 모든 오류가 일괄 처리를 종료하고 그 자리에서 트랜잭션을 롤백합니다.

+0

나는 그들이 원래 삽입/업데이트를 롤백하는 이유는 동일한 트랜잭션에 있다고 생각합니다. 이것이 실제로 이유입니다. – AndrewBay

관련 문제