次の方法で共有


Repair メソッド

破損したデータベースを修復します。

名前空間:  System.Data.SqlServerCe
アセンブリ:  System.Data.SqlServerCe (System.Data.SqlServerCe.dll)

構文

'宣言
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
)

パラメーター

説明

RepairOption の DeleteCorruptedRows 値を使用して修復メソッドを呼び出すと、すべての破損ページがデータベースから破棄されます。そのため、重要なデータを損失することがありますが、このオプションを使用して回復したデータは、破損していません。

RepairOption の RecoverCorruptedRows 値を使用して修復メソッドを呼び出すと、データベースによって破損ページの読み取りが試行されます。その結果、より多くのデータを回復できることがあります。ただし、このオプションでは、回復したデータが破損している場合があります。

注意

SQL Server Compact 3.5 Service Pack 1 (SP1) 以降では、このメソッドを使って、照合順序で大文字と小文字を区別する修復データベースを作成できます。Repair メソッドの接続文字列プロパティ CaseSensitive を false に設定した場合、大文字と小文字を区別するデータベースで大文字と小文字を区別するインデックスが含まれていると、コードが正常に実行されても、その区別がないことが修復ログのインデックス エラーになることがあります。エラーは、2 つの一意のレコードが同一のものとして扱われる場合に発生します。たとえば、"aaa" と "aaA" という 2 つの値などです。修復ログ ファイルには、"インデックスを作成できませんでした" というメッセージが書き込まれます。

使用例

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 名前空間