2011-03-24 4 views
0

누군가가 왜 커밋을 사용해야하는지 설명해 주시겠습니까? http://msdn.microsoft.com/en-us/library/ms190295.aspx트랜잭션 커밋?

. tableZ recordO에

3) 업데이트

4 TABLEY recordN에

2) 업데이트 TABLEX recordM)에

가 가

1) 업데이트 여기

..

커밋 사용하십시오 2)가 실패하고 recordN이 업데이트되지 않은 경우 롤백하고 3) 및 4) 커밋하지 마십시오. 당신이 그것을 사용할 곳이 어디입니까?

답변

2

하나 이상의 작업 (트랜잭션)이 완료되고 데이터베이스를 변경하려는 경우 커밋을 사용하십시오. 2) 실패하면 그 예

일관성있는 데이터베이스를 유지할 수 있도록, 당신이 취소됩니다 롤백하고 동작 1)을 수행해야합니다 귀하의 예제에서

. 주식

    • 가 판매 역사
  • 을 만들

      • 할인 : 당신이 서점 시스템을 가지고 있다면 당신은 책을 판매 할 때마다, 당신은 몇 가지 작업을 수행해야
        • 고객의 카드에 수수료를 부과합니다.

    당신은 모든 작업이 성공했거나 아무것도 수행하지 않기를 원할 것입니다. 은 그래서 당신은해야합니다 :

  • 1,2,3
  • 커밋 단계 않는 transation 시작

    뭔가 잘못 롤백 모든 생각

  • +0

    , 그것은 자동 (취소)하는 경우 각 업데이트 후 자동으로 커밋? SQL Server에서이 기능을 설정하거나 해제 할 수 있습니까? – 001

    +0

    기본적으로 자동으로 커밋되며 SET IMPLICIT_TRANSACTION OFF를 사용할 수 있지만 일반적으로 API를 사용하여 해제합니다. 그리고 만약 내가 맞다면, 당신이 transaction.begin()을 호출 할 때마다 자동 커밋을 끈다. – Kossel

    1

    커플 작업을 하나의 작업으로 처리하려면 항상 커밋을 사용하십시오. 이것은 적어도 하나의 실패가 모두 커밋되기 전의 상태로 복귀 될 때이를 의미합니다.

    일부 작업을 원자 작업으로 처리해야하기 때문에 매우 유용합니다. 은행 업무.