IsolationLevel 열거형
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
트랜잭션의 격리 수준을 지정합니다.
public enum class IsolationLevel
public enum IsolationLevel
type IsolationLevel =
Public Enum IsolationLevel
- 상속
필드
Chaos | 5 | 격리 수준이 높은 트랜잭션에서 보류 중인 변경은 덮어쓸 수 없습니다. |
ReadCommitted | 2 | 트랜잭션을 수행하는 동안 일시적 데이터를 읽을 수 없지만 수정할 수는 있습니다. |
ReadUncommitted | 3 | 트랜잭션을 수행하는 동안 일시적 데이터를 읽고 수정할 수 있습니다. |
RepeatableRead | 1 | 트랜잭션을 수행하는 동안 일시적 데이터를 읽을 수 있지만 수정할 수는 없습니다. 트랜잭션을 수행하는 동안 새 데이터를 추가할 수 있습니다. |
Serializable | 0 | 트랜잭션을 수행하는 동안 일시적 데이터를 읽을 수 있지만 수정할 수는 없으며 새 데이터를 추가할 수도 없습니다. |
Snapshot | 4 | 일시적 데이터를 읽을 수 있습니다. 트랜잭션은 데이터를 수정하기 전에, 데이터가 처음 읽혀진 후 다른 트랜잭션이 이 데이터를 변경했는지 확인합니다. 데이터가 업데이트된 경우 오류가 발생합니다. 이 경우 트랜잭션이 이전에 커밋된 데이터 값에 영향을 미칠 수 있습니다.
|
Unspecified | 6 | 지정된 격리 수준과 다른 수준이 사용되지만 수준을 결정할 수는 없습니다. 이 값을 설정하면 예외가 throw됩니다. |
설명
트랜잭션에 의해 영향을 받는 데이터는 휘발성 라고 합니다. 트랜잭션을 만들 때 트랜잭션에 적용되는 격리 수준을 지정할 수 있습니다. 트랜잭션의 격리 수준을 완료 되는 다른 트랜잭션이 트랜잭션 전에 휘발성 데이터에 갖는 액세스 수준이 결정 합니다.
최하위 격리 수준인 ReadUncommitted
을 하면 여러 트랜잭션이 동시에 데이터 저장소에서 작동 하도록 하 고 트랜잭션 중단으로 인해 데이터 손상 으로부터 보호 되지 않음를 제공 합니다. 가장 높은 격리 수준 Serializable
, 높은 수준의 지정 하면 다른 트랜잭션이 대 한 보호를 제공 하지만 각 트랜잭션이 다른 트랜잭션에서 데이터에 적용할 수 전에 완료 되어야 합니다.
트랜잭션의 격리 수준 트랜잭션이 만들어질 때 결정 됩니다. 기본적으로 System.Transactions 인프라 만듭니다 Serializable
트랜잭션. 트랜잭션의 속성을 사용하여 Transaction.IsolationLevel 기존 트랜잭션의 격리 수준을 확인할 수 있습니다.