2013-05-03 2 views
0

문 실행과 첫 번째 AFTER 트리거 실행 사이의 시간 지연을 알고 싶습니다. 동시성을 이유로 쿼리가 완료된 후 datetime2 필드의 간단한 업데이트를 수행 할 것입니다. INSTEAD OF 트리거가 첫 선택 이었지만 SQL Azure에서는 SELECT INTO를 사용할 수 없습니다.SQL Server - 실행 순서/AFTER TRIGGER

AFTER 트리거가 실행을 시작하기 전에 행을 검색 할 수 있는지 찾고 싶습니다. 그렇다면 과부하 상태에서이 상황이 발생할 가능성은 얼마나 될까요?

+1

행이 아직 그 시점에 커밋되지 않았기 때문에 다른 트랜잭션이 그 행을 볼 수 있을지 의심 스럽습니다. –

답변

3

지연이 없습니다. 트리거는 트랜잭션/명령문의 일부입니다.

또한, 당신은 변경된 데이터를 포함하는 특별한 테이블을 삽입이 없습니다 삭제 :

마지막으로 트리거

편집을 실제 테이블을 쿼리 할 필요를, 컬럼의 기본값은 다음이있는 경우 당신이 사용할 수있는이

UPDATE 
    SomeTable 
SET 
    foo = ..., 
    bar = ..., 
    TheDateTime2Column = DEFAULT -- this 
WHERE 
    ... 
0

가 미리 정의 된 지연이 없지만, 두 곳에서 GETDATE()를 호출하는 경우 당신은 아마 하드웨어에 따라, 조만간 다른 결과를 얻기 위해 데이터의 볼륨을 가고있다 그리고 tr의 복잡성 iggers.

더티 또는 일관성없는 데이터를 읽지 않으려면 필요한 데이터 액세스 유형에 따라 트랜잭션 격리 수준을 현명하게 사용해야합니다.