Verwenden der Verify- und der Repair-Methode
Mit den Methoden Verify und Repair können Sie die Datenintegrität einer Datenbank von Microsoft SQL Server 2005 Compact Edition (SQL Server Compact Edition) überprüfen und gefundene Fehler beheben. Weitere Informationen finden Sie unter Verwenden der Verify- und der Repair-Methode.
Überprüfen einer Datenbank
SQL Server Compact Edition-Datenbankdateien werden in logische, 4 KB große Einheiten unterteilt, die als Seiten bezeichnet werden. Beim Schreiben einer Seite in die Datenbankdatei berechnet und speichert SQL Server Compact Edition eine Prüfsumme für diese Seite. Wird die Seite, nachdem sie in die Datei geschrieben wurde, geändert oder beschädigt, sind ihre tatsächliche und ihre erwartete Prüfsumme nicht mehr identisch.
Durch Aufrufen der Verify-Methode der System.Data.SqlServerCe.SqlCeEngine-Klasse werden die Prüfsummen aller Seiten in der Datenbankdatei erneut berechnet und überprüft, ob die Prüfsummen mit den erwarteten Werten übereinstimmen. Gibt diese Methode TRUE zurück, ist die Datenbankdatei nicht beschädigt. Gibt diese Methode FALSE zurück, wurde die Datenbankdatei beschädigt und sollte die Anwendung die Repair-Methode aufrufen.
Reparieren einer Datenbank
Ist eine Datenbankdatei beschädigt worden, können Sie versuchen, diese mithilfe der Repair-Methode des SqlCeEngine-Objekts zu reparieren. Bei der Repair-Methode wird die Datenbank gescannt, und die Prüfsummen der Seiten werden berechnet. Stimmt eine Prüfsumme nicht mit der Prüfsumme überein, die berechnet wurde, als die Seite in die Datenbank geschrieben wurde, wird diese Seite als beschädigt angesehen.
Für einen Aufruf der Repair-Methode gibt es zwei Optionen:
- RepairOption.DeleteCorruptedRows
Wird die Repair-Methode mit der DeleteCorruptedRows-Option aufgerufen, werden alle beschädigten Seiten verworfen. Dies kann zu einem erheblichen Datenverlust führen, wenn die beschädigte Seite das Datenbankschema enthält. Allerdings ist davon auszugehen, dass Daten, die mit dieser Option wiederhergestellt wurden, unbeschädigt sind. - RepairOption.RecoverCorruptedRows
Wird die Repair-Methode mit der RecoverCorruptedRows -Option aufgerufen, wird für die Datenbank versucht, Daten aus beschädigten Seiten zu lesen. Dies kann dazu führen, dass mehr Daten wiederhergestellt werden, stellt aber nicht sicher, dass die wiederhergestellten Daten ohne logische Beschädigungen vorliegen.
![]() |
---|
Die Repair-Methode lässt sich nur dann sinnvoll verwenden, wenn SQL Server Compact Edition einen Fehler mit der systemeigenen Fehlernummer 25017 (SSCE_M_DATABASECORRUPTED) zurückgibt oder wenn ein Aufruf der Verify-Methode des SqlCeEngine-Objekts false zurückgibt. |
Beispiel
Beschreibung
Im folgenden Beispiel wird gezeigt, wie die Methoden Verify und Repair verwendet werden können.
Code
C#
SqlCeEngine engine = new SqlCeEngine("Data Source = AdventureWorks.sdf");
if (false == engine.Verify())
{
MessageBox.Show("Database is corrupted.");
engine.Repair(null, RepairOption.RecoverCorruptedRows);
}
Code
Visual Basic
Dim engine As New SqlCeEngine("Data Source = AdventureWorks.sdf")
If False = engine.Verify() Then
MessageBox.Show("Database is corrupted.")
engine.Repair(Nothing, RepairOption.RecoverCorruptedRows)
End If
Siehe auch
Referenz
System.Data.SqlServerCe-Namespaceobjekte
System.Data.SqlServerCe-Namespace (Referenzdokumentation zu .NET Framework)