다음을 통해 공유


IsolationLevel 열거형

정의

트랜잭션의 격리 수준을 지정합니다.

public enum class IsolationLevel
public enum IsolationLevel
type IsolationLevel = 
Public Enum IsolationLevel
상속
IsolationLevel

필드

Chaos 5

격리 수준이 높은 트랜잭션에서 보류 중인 변경은 덮어쓸 수 없습니다.

ReadCommitted 2

트랜잭션을 수행하는 동안 일시적 데이터를 읽을 수 없지만 수정할 수는 있습니다.

ReadUncommitted 3

트랜잭션을 수행하는 동안 일시적 데이터를 읽고 수정할 수 있습니다.

RepeatableRead 1

트랜잭션을 수행하는 동안 일시적 데이터를 읽을 수 있지만 수정할 수는 없습니다. 트랜잭션을 수행하는 동안 새 데이터를 추가할 수 있습니다.

Serializable 0

트랜잭션을 수행하는 동안 일시적 데이터를 읽을 수 있지만 수정할 수는 없으며 새 데이터를 추가할 수도 없습니다.

Snapshot 4

일시적 데이터를 읽을 수 있습니다. 트랜잭션은 데이터를 수정하기 전에, 데이터가 처음 읽혀진 후 다른 트랜잭션이 이 데이터를 변경했는지 확인합니다. 데이터가 업데이트된 경우 오류가 발생합니다. 이 경우 트랜잭션이 이전에 커밋된 데이터 값에 영향을 미칠 수 있습니다.

Snapshot 격리 수준으로 만든 트랜잭션을 승격하려고 하면 "IsolationLevel 스냅샷이 있는 트랜잭션을 승격할 수 없습니다"라는 오류 메시지와 함께 InvalidOperationException이 throw됩니다.

Unspecified 6

지정된 격리 수준과 다른 수준이 사용되지만 수준을 결정할 수는 없습니다. 이 값을 설정하면 예외가 throw됩니다.

설명

트랜잭션에 의해 영향을 받는 데이터는 휘발성 라고 합니다. 트랜잭션을 만들 때 트랜잭션에 적용되는 격리 수준을 지정할 수 있습니다. 트랜잭션의 격리 수준을 완료 되는 다른 트랜잭션이 트랜잭션 전에 휘발성 데이터에 갖는 액세스 수준이 결정 합니다.

최하위 격리 수준인 ReadUncommitted을 하면 여러 트랜잭션이 동시에 데이터 저장소에서 작동 하도록 하 고 트랜잭션 중단으로 인해 데이터 손상 으로부터 보호 되지 않음를 제공 합니다. 가장 높은 격리 수준 Serializable, 높은 수준의 지정 하면 다른 트랜잭션이 대 한 보호를 제공 하지만 각 트랜잭션이 다른 트랜잭션에서 데이터에 적용할 수 전에 완료 되어야 합니다.

트랜잭션의 격리 수준 트랜잭션이 만들어질 때 결정 됩니다. 기본적으로 System.Transactions 인프라 만듭니다 Serializable 트랜잭션. 트랜잭션의 속성을 사용하여 Transaction.IsolationLevel 기존 트랜잭션의 격리 수준을 확인할 수 있습니다.

적용 대상