Поделиться через


Использование методов Verify и Repair

Методы Verify и Repair служат для проверки целостности данных в БД Microsoft SQL Server 2005 Compact Edition (SQL Server Compact Edition) и исправления обнаруженных ошибок. Дополнительные сведения см. в разделе Использование методов Verify и Repair.

Проверка базы данных

Файлы базы данных SQL Server Compact Edition разделены на логические блоки размером по 4 килобайта, именуемые страницами. При записи каждой страницы в файл базы данных SQL Server Compact Edition вычисляет и сохраняет ее контрольную сумму. Если после записи в файл страница будет изменена или повреждена, она более не будет соответствовать ожидаемой контрольной сумме.

Метод Verify класса System.Data.SqlServerCe.SqlCeEngine заново вычисляет контрольные суммы всех страниц в файле базы данных и проверяет полученные контрольные суммы на соответствие ожидаемым величинам. Возвращенное методом значение "true" свидетельствует, что база данных не повреждена. Если возвращено значение "false", то файл базы данных поврежден и приложению следует вызвать метод Repair.

Восстановление базы данных

Если файл базы данных поврежден, можно попытаться восстановить его с помощью метода Repair объекта SqlCeEngine. Метод Repair служит для сканирования базы данных и вычисления контрольных сумм страниц. Если какая-либо контрольная сумма не совпадает с той, что была ранее вычислена при записи страницы в базу данных, то страница считается поврежденной.

Метод Repair можно вызвать с одним из двух приведенных ниже параметров.

  • RepairOption.DeleteCorruptedRows
    Если вызвать метод восстановления с параметром DeleteCorruptedRows, все поврежденные страницы будут удалены. Если поврежденная страница содержит схему базы данных, это может привести к значительной потере данных. Однако восстановленные таким способом данные не будут содержать ошибок.
  • RepairOption.RecoverCorruptedRows
    Если вызвать метод восстановления с параметром RecoverCorruptedRows , будет предпринята попытка считать данные на поврежденных страницах. В результате можно восстановить больше данных, но нельзя гарантировать, что в восстановленных данных не будет логических ошибок.
Примечание.
Метод Repair следует применять, только если SQL Server Compact Edition возвращает ошибку с собственным номером ошибки 25017 (SSCE_M_DATABASECORRUPTED) либо метод Verify объекта SqlCeEngine возвращает значение false.

Пример

Описание

В приведенном примере показан способ использования методов Verify и Repair.

Код

C#

SqlCeEngine engine = new SqlCeEngine("Data Source = AdventureWorks.sdf");
        if (false == engine.Verify())
        {
            MessageBox.Show("Database is corrupted.");
            engine.Repair(null, RepairOption.RecoverCorruptedRows);
        }
  

Код

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

См. также

Справочник

Объекты пространства имен System.Data.SqlServerCe
Пространство имен System.Data.SqlServerCe (справочная документация по .NET Framework)

Справка и поддержка

Получение помощи по SQL Server Compact Edition