다음을 통해 공유


Repair 메서드

손상된 데이터베이스를 복구합니다.

네임스페이스:  System.Data.SqlServerCe
어셈블리:  System.Data.SqlServerCe.dll의 System.Data.SqlServerCe

구문

‘선언
Public Sub Repair ( _
    connectionString As String, _
    options As RepairOption _
)
‘사용 방법
Dim instance As SqlCeEngine
Dim connectionString As String
Dim options As RepairOption

instance.Repair(connectionString, options)
public void Repair(
    string connectionString,
    RepairOption options
)
public:
void Repair(
    String^ connectionString, 
    RepairOption options
)
member Repair : 
        connectionString:string * 
        options:RepairOption -> unit 
public function Repair(
    connectionString : String, 
    options : RepairOption
)

매개 변수

  • connectionString
    형식: System. . :: . .String
    데이터베이스에 대한 로컬 연결 문자열입니다.

주의

복구 메서드가 RepairOption의 DeleteCorruptedRows 값을 사용하여 호출될 경우 손상된 모든 페이지가 데이터베이스에서 삭제됩니다. 그 결과 많은 양의 데이터가 손실될 수 있으나 이 옵션을 사용하여 복구된 데이터는 손상되지 않습니다.

복구 메서드가 RepairOption의 RecoverCorruptedRows 값을 사용하여 호출될 경우 데이터베이스는 손상된 페이지에서 데이터를 읽으려고 시도합니다. 이렇게 되면 더 많은 데이터를 복구할 수는 있지만 복구되는 데이터가 손상되지 않도록 보장하지는 못합니다.

참고

SQL Server Compact 3.5 서비스 팩 1(SP1)부터는 이 메서드를 사용하여 데이터 정렬이 대/소문자를 구분하는 복구된 데이터베이스를 만들 수 있습니다. Repair 메서드에서 연결 문자열 속성 CaseSensitive를 false로 설정하면 대/소문자를 구분하는 데이터베이스에 대/소문자를 구분하는 인덱스가 들어 있는 경우 코드가 성공적으로 실행되어도 대/소문자 구분이 되지 않기 때문에 복구 로그에서 인덱스 오류가 발생할 수 있습니다. 별개의 두 레코드가 같은 것으로 취급될 때 이 오류가 발생합니다. 이러한 레코드의 예로 'aaa'와 'aaA'를 들 수 있습니다. 인덱스를 만들지 못했다는 내용의 메시지가 복구 로그 파일에 기록됩니다.

예제

Dim engine As New SqlCeEngine("Data Source = AdventureWorks.sdf")

' Specify null destination connection string for in-place repair
'
engine.Repair(Nothing, RepairOption.DeleteCorruptedRows)
SqlCeEngine engine = new SqlCeEngine("Data Source = AdventureWorks.sdf");

// Specify null destination connection string for in-place repair
//
engine.Repair(null, RepairOption.DeleteCorruptedRows);

참고 항목

참조

SqlCeEngine 클래스

SqlCeEngine 멤버

System.Data.SqlServerCe 네임스페이스