2012-11-23 4 views
8

수백만 개의 행이있는 테이블이 있습니다. 실수로 where 절이없고 실행 된 클릭이없는 테이블에 대한 업데이트 쿼리를 작성했습니다. 실행을 시작했습니다. 2 초 후에 나는 쿼리가 잘못되었음을 깨달았고 Sql 서버 관리 스튜디오에서 'Stop'버튼을 클릭했다. 쿼리 실행이 중지되었습니다.이 모든 작업은 7 초 이내에 발생했습니다. 이제 어떤 행이 영향을 미쳤는지 궁금합니다. 호를 찾으려면 호 호. 미리 감사드립니다. 사용자가 업데이트 쿼리를 취소했습니다.

+0

중복 가능성이 커밋 것 (HTTP [을 내가 SQL 서버 2005 업데이트 쿼리를 롤백 할 수 있습니까?] : // 유래 .com/questions/721471/i-rollback-an-update-query-in-sql-server-2005) – Kermit

+0

나는 그렇게 생각하지 않는다. 롤백하고 싶지 않습니다. 영향을받는 행의 수를 알고 싶습니다. 감사합니다 – MaxRecursion

+2

@AkshayKulkarni 커밋되지 않았기 때문에 롤백 할 필요가 없습니다. SQL 서버는 명령문의 끝에서 커밋을 수행하지만 취소합니다. 그래서 어떤 행에도 영향을받지 않았습니다 – Marc

답변

9

단일 업데이트 문은 일부 행을 업데이트하지 않습니다. 모든 행 또는 없음

이것은 ACID 속성의 atomicity이며 SQL Server는이를 준수합니다.

원자 성은 각 트랜잭션을 "모두 또는 아무것도"필요로합니다. 트랜잭션의 일부가 실패하면 전체 트랜잭션이 실패하고 데이터베이스 상태는 변경되지 않습니다. 원자력 시스템은 정전, 오류 및 충돌을 포함하여 모든 상황에서 원 자성을 보장해야합니다. 그런 다음

커밋은 문장의 끝에, 그래서 당신이 취소 할 때 더의

+0

어떻게 대답하나요? – Kermit

+0

질문은 "지금 어떤 행이 영향을 주는지 알고 싶습니다." There 's so – Marc

+0

나의 이해에 따라 어떤 행도 바뀌지 않았다? 고마워. 확인할 방법이 있습니까? – MaxRecursion

관련 문제