Compartir a través de


Limitaciones de la réplica

Cuando se utiliza la réplica de mezcla con suscriptores de Microsoft SQL Server 2005 Compact Edition (SQL Server Compact Edition), existen varias limitaciones en la publicación. En esta sección se describen esas limitaciones.

Restricciones de cambio de esquema en el suscriptor

Se pueden realizar algunos cambios de esquema en el suscriptor, pero no todos. En la tabla siguiente, se describen los cambios de esquema que pueden y no pueden realizarse en el suscriptor.

Acción Permitido en una tabla replicada

Eliminar una tabla

No

Cambiar de nombre una tabla

No

Agregar, quitar o eliminar una columna

No

Cambiar el valor de inicialización o incremento de una columna de identidad

Agregar o eliminar un valor predeterminado

Agregar o eliminar la clave principal

No

Agregar o eliminar la clave externa

No

Agregar o eliminar el índice

Advertencia:
No se recomienda agregar o eliminar índices en columnas de réplica de tablas de usuario. Esto produce errores de sincronización, ya que las columnas de réplica se tratan como columnas del sistema.

Cambiar de nombre el índice

Importante:
No se pueden realizar cambios de esquema en tablas del sistema.

Requisitos adicionales

Se aplican las siguientes reglas a los suscriptores de SQL Server Compact Edition:

  • Utilización de memoria
    Durante la sincronización, después de haber solicitado la reinicialización, es posible que la base de datos de SQL Server Compact Edition duplique su tamaño temporalmente, pero se reducirá cuando se complete la sincronización (de acuerdo con la directiva de reducción automática que haya establecido).

  • Validación del filtro de suscripciones
    La validación del filtro permite al publicador comprobar el valor de filtro de un suscriptor antes de sincronizar los datos. Si el valor de filtro ha cambiado en el suscriptor, el publicador requiere una reinicialización en el suscriptor. Al sincronizar datos con SQL Server 2005, SQL Server Compact Edition puede utilizar la validación de filtro.

    [!NOTA] La propiedad HostName especifica el valor de filtro dinámico de la suscripción. Si desea cambiar este valor para el suscriptor especificando una nueva propiedad HostName, debe llamar al método Reinitialize antes de sincronizar.

  • Distinción entre mayúsculas y minúsculas
    Las bases de datos de SQL Server Compact Edition no distinguen entre mayúsculas y minúsculas. En una base de datos de SQL Server Compact Edition, los datos y los objetos se tratan de manera diferente a como se tratan en una base de datos de SQL Server. Por ejemplo, dos tablas, MYTABLE y mytable, se tratan como objetos diferentes en una base de datos de SQL Server que distingue entre mayúsculas y minúsculas. Los mismos nombres de tabla provocan un conflicto de nomenclatura en una base de datos de SQL Server Compact Edition. De manera similar, dos valores, MYVALUE y myvalue, causarían una infracción de clave principal en SQL Server Compact Edition, ya que ambos se tratan como si fuesen un mismo valor, mientras que el mismo error no se produciría en una base de datos de SQL Server que distingue entre mayúsculas y minúsculas.

  • Número de columnas en una tabla
    SQL Server Compact Edition asigna siete columnas del sistema para seguimiento. No obstante, estas tablas del sistema no cuentan para el límite del número de columnas.

  • Restricciones NOT FOR REPLICATION
    SQL Server Compact Edition no admite la opción NOT FOR REPLICATION. No cree restricciones utilizando esta opción. Si las restricciones de una base de datos tienen la opción NOT FOR REPLICATION, quite la restricción y vuelva a crearla. Si se especifica la opción NOT FOR REPLICATION, la restricción se crea de todas maneras en el suscriptor de SQL Server Compact Edition, pero no incluye la sintaxis NOT FOR REPLICATION.

  • Tiempo de espera para conexión
    Las suscripciones a SQL Server Compact Edition se recuperan de los errores de comunicación reiniciándose desde el último bloque de datos transmitido correctamente, siempre que la conexión se restaure dentro del período de tiempo de espera configurado por el usuario. Esto hace posible la sincronización aun cuando el transporte subyacente no sea de confianza o no esté disponible temporalmente.

  • Instantáneas
    SQL Server Compact Edition admite la opción de ubicación de instantáneas tanto predeterminada como alternativa. Para especificar una ubicación de instantáneas alternativa, establezca esta opción mediante el procedimiento almacenado sp_addmergepublication, o bien mediante SQL Server Management Studio, para cambiar las propiedades de una publicación existente.

    • Para utilizar el procedimiento almacenado sp_addmergepublication
      Establezca la opción @snapshot_in_defaultfolder en FALSE y @alt_snapshot_folder= ubicación de la carpeta alternativa de la instantánea.
    • Para cambiar las propiedades de publicación de una publicación existente
      En la sección Instantánea del cuadro de diálogo Propiedades de la publicación, desactive la casilla de verificación Poner los archivos en la carpeta predeterminada, active la casilla de verificación Poner los archivos en la siguiente carpeta y, a continuación, especifique la nueva ubicación.

    [!NOTA] SQL Server Compact Edition no admite la opción de instantánea comprimida.

Para obtener más información acerca de las instantáneas, vea Configurar la carpeta de instantáneas.

Información que no se propaga a un suscriptor de SQL Server Compact Edition

Puede incluir los elementos siguientes en una publicación de SQL Server, pero no se propagarán al suscriptor de SQL Server Compact Edition:

  • Restricciones CHECK
  • Propiedades extendidas
  • Procedimientos almacenados
  • Vistas
  • Funciones definidas por el usuario
  • Desencadenadores

Debido a que estos elementos no se propagan en la réplica de SQL Server Compact Edition, deberá implementar la lógica equivalente en una aplicación basada en SQL Server Compact Edition. Así, garantizará que la base de datos de SQL Server Compact Edition mantenga la coherencia con la base de datos de SQL Server. Por ejemplo, si la base de datos de SQL Server incluye una restricción CHECK, la aplicación basada en SQL Server Compact Edition debería implementarla en el código de la aplicación.

Crear índices en una base de datos local de SQL Server Compact Edition

Se pueden crear índices únicos en una base de datos local de SQL Server Compact Edition, incluso si esa base de datos es un suscriptor de una publicación. Esto es de utilidad, aunque puede causar problemas si el publicador, que no tiene ninguna restricción UNIQUE en una columna, envía datos no únicos al suscriptor. Por ejemplo, podría tener una tabla T con columnas C1 y C2; y estando la clave principal en C1.

C1

C2

A

1

B

2

C

3

Se produce una sincronización inicial en la base de datos de SQL Server Compact Edition. Después de esta sincronización, se agrega un índice único a C2 en la base de datos de suscripción. No se realiza ningún cambio en la base de datos de publicación.

Durante la siguiente sincronización, SQL Server inserta estas filas:

D

3

E

3

En este caso, se produce un error en la sincronización, porque el publicador intentó insertar valores no únicos para C2. Se seguirán produciendo errores de sincronización hasta que se quite la restricción UNIQUE de la base de datos de suscripción.

Vea también

Ayuda e información

Obtener ayuda sobre SQL Server Compact Edition