Compartir a través de


Usar los métodos Verify y Repair

Los métodos Verify y Repair permiten comprobar la integridad de los datos de una base de datos de Microsoft SQL Server 2005 Compact Edition (SQL Server Compact Edition) y corregir posibles problemas. Para obtener más información, vea Usar los métodos Verify y Repair.

Comprobar una base de datos

Los archivos de base de datos de SQL Server Compact Edition se dividen en unidades lógicas de 4 KB denominadas páginas. A medida que se escriben páginas en el archivo de base de datos, SQL Server Compact Edition calcula y guarda una suma de comprobación para cada página. Si la página se modifica o se daña después de escribirse en el archivo, su suma de comprobación dejará de coincidir con la esperada.

Si se llama al método Verify de la clase System.Data.SqlServerCe.SqlCeEngine, se vuelven a calcular las sumas de comprobación de todas las páginas del archivo de base de datos y se comprueba que coincidan con los valores esperados. Si el método devuelve true, el archivo de base de datos no está dañado. Si el método devuelve false, el archivo de base de datos se ha dañado y la aplicación deberá llamar al método Repair.

Reparar una base de datos

Si un archivo de base de datos resulta dañado, se puede intentar recuperar mediante el método Repair del objeto SqlCeEngine. El método Repair explora la base de datos y calcula las sumas de comprobación de página. Si una suma de comprobación no coincide con la calculada cuando la página se escribió en la base de datos, dicha página se considera dañada.

El método Repair se puede llamar de dos formas:

  • RepairOption.DeleteCorruptedRows
    Si el método de reparación se invoca con el valor DeleteCorruptedRows, las páginas dañadas se descartarán. Esto puede provocar una pérdida de datos significativa si la página dañada contiene parte del esquema de la base de datos. No obstante, los datos recuperados mediante el uso de esta opción ya no deberían estar dañados.
  • RepairOption.RecoverCorruptedRows
    Si el método de reparación se invoca con el valor RecoverCorruptedRows , la base de datos intentará leer los datos de las páginas dañadas. De esta forma pueden recuperarse más datos, pero no se garantiza que los datos recuperados no tengan errores lógicos.

[!NOTA] El método Repair sólo es útil si SQL Server Compact Edition devuelve un error con el número de error nativo 25017 (SSCE_M_DATABASECORRUPTED) o si una llamada al método Verify del objeto SqlCeEngine devuelve false.

Ejemplo

Descripción

En el ejemplo siguiente se muestra cómo usar los métodos Verify y Repair.

Código

C#

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

Código

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

Vea también

Referencia

Objetos del espacio de nombres System.Data.SqlServerCe
System.Data.SqlServerCe Namespace (documentación de referencia de .NET Framework)

Ayuda e información

Obtener ayuda sobre SQL Server Compact Edition