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
)
パラメーター
- connectionString
型: System. . :: . .String
データベースへのローカル接続文字列。
- options
型: System.Data.SqlServerCe. . :: . .RepairOption
データベースの修復時に使用する 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);