Condividi tramite


Limiti della replica

Quando si utilizza la replica di tipo merge con i Sottoscrittori di Microsoft SQL Server 2005 Compact Edition (SQL Server Compact Edition), la pubblicazione sarà soggetta a diverse limitazioni. In questa sezione vengono descritte tali limitazioni.

Limitazioni relative alle modifiche dello schema nel Sottoscrittore

È possibile eseguire alcune modifiche dello schema nel Sottoscrittore, ma non tutte quelle normalmente disponibili. Nella tabella seguente vengono descritte le modifiche dello schema che è possibile o meno eseguire nel Sottoscrittore.

Azione Consentita su una tabella replicata

Eliminazione di una tabella

No

Ridenominazione di una tabella

No

Aggiunta/eliminazione/rimozione di una colonna

No

Modifica del valore di inizializzazione o di incremento di una colonna Identity

Aggiunta o eliminazione dei valori predefiniti

Aggiunta o eliminazione della chiave primaria

No

Aggiunta o eliminazione della chiave esterna

No

Aggiunta o eliminazione dell'indice

Attenzione:
È consigliabile non aggiungere o eliminare indici dalle colonne di replica delle tabelle utente. Tale operazione comprometterebbe infatti l'esito della sincronizzazione perché le colonne di replica vengono trattate come colonne di sistema.

Ridenominazione dell'indice

Importante:
Non è possibile eseguire modifiche dello schema delle tabelle di sistema.

Altri requisiti

Le regole seguenti riguardano i Sottoscrittori di SQL Server Compact Edition:

  • Consumo di memoria
    Durante la sincronizzazione, dopo la richiesta di reinizializzazione, è possibile che le dimensioni del database di SQL Server Compact Edition crescano temporaneamente fino a raddoppiare, per tornare a ridursi al termine dell'operazione, secondo quanto specificato dalle impostazioni della compattazione automatica.

  • Convalida dei filtri della sottoscrizione
    La convalida dei filtri consente al server di pubblicazione di verificare il valore di un filtro del Sottoscrittore prima di procedere alla sincronizzazione dei dati. Se nel Sottoscrittore il valore del filtro è stato modificato, il server di pubblicazione richiede al Sottoscrittore una reinizializzazione. Quando si sincronizzano dati con SQL Server 2005, SQL Server Compact Edition può utilizzare la convalida dei filtri.

    [!NOTA] La proprietà HostName specifica il valore del filtro dinamico per la sottoscrizione. Se si desidera modificare il valore del filtro dinamico per il Sottoscrittore specificando un nuovo valore per la proprietà HostName, è necessario chiamare il metodo Reinitialize prima di eseguire la sincronizzazione.

  • Distinzione tra maiuscole e minuscole
    I database di SQL Server Compact Edition non fanno distinzione tra maiuscole e minuscole. Nei database di SQL Server Compact Edition gli oggetti e i dati vengono trattati in modo diverso rispetto ai database di SQL Server. In un database di SQL Server che fa distinzione tra maiuscole e minuscole, ad esempio, le due tabelle MYTABLE e mytable vengono trattate come oggetti diversi. In un database di SQL Server Compact Edition si verificherà un conflitto di denominazione in quanto le due tabelle hanno lo stesso nome. In modo analogo, i due valori MYVALUE e myvalue causeranno una violazione di chiave primaria in SQL Server Compact Edition in quanto vengono trattati come uno stesso valore, mentre non causeranno alcuna violazione in un database di SQL Server che fa distinzione tra maiuscole e minuscole.

  • Numero di colonne in una tabella
    In SQL Server Compact Edition vengono allocate sette colonne di sistema per il rilevamento. Queste tabelle di sistema non vengono tuttavia considerate nel calcolo del limite del numero di colonne.

  • Vincoli NOT FOR REPLICATION
    SQL Server Compact Edition non supporta l'opzione NOT FOR REPLICATION. Non creare pertanto vincoli utilizzando questa opzione. Se ai vincoli di un database è stata applicata l'opzione NOT FOR REPLICATION, rimuoverli e quindi ricrearli. Se è stata specificata l'opzione NOT FOR REPLICATION, il vincolo viene comunque creato nel Sottoscrittore di SQL Server Compact Edition, ma non include la sintassi NOT FOR REPLICATION.

  • Timeout della connessione
    È possibile ripristinare le sottoscrizioni di SQL Server Compact Edition in seguito a problemi di comunicazione iniziando di nuovo dall'ultimo blocco di dati trasmesso correttamente, a condizione che la connessione venga ripristinata entro il periodo di timeout configurabile dall'utente. In questo modo è possibile eseguire la sincronizzazione anche se il trasporto sottostante non è affidabile o non è temporaneamente disponibile.

  • Snapshot
    SQL Server Compact Edition supporta sia la posizione dello snapshot predefinita sia la posizione dello snapshot alternativa. Per specificare una posizione dello snapshot alternativa, è possibile utilizzare la stored procedure sp_addmergepublication oppure SQL Server Management Studio per modificare le proprietà di una pubblicazione esistente.

    • Per utilizzare la stored procedure sp_addmergepublication
      Impostare l'opzione @snapshot_in_defaultfolder su FALSE e @alt_snapshot_folder= posizione della cartella alternativa dello snapshot.
    • Per modificare le proprietà di una pubblicazione esistente
      Nella sezione Snapshot della finestra di dialogo Proprietà della pubblicazione deselezionare la casella di controllo Inserisci i file nella cartella predefinita, selezionare la casella di controllo Inserisci i file nella cartella seguente e quindi specificare la nuova posizione.

    [!NOTA] SQL Server Compact Edition non supporta l'opzione di snapshot compresso.

Per ulteriori informazioni sugli snapshot, vedere Configurazione della cartella snapshot.

Informazioni che non vengono propagate a un Sottoscrittore di SQL Server Compact Edition

Gli elementi seguenti possono essere inclusi in una pubblicazione di SQL Server, ma non verranno propagati al Sottoscrittore di SQL Server Compact Edition:

  • Vincoli CHECK
  • Proprietà estese
  • Stored procedure
  • Viste
  • Funzioni definite dall'utente
  • Trigger

Poiché la replica di SQL Server Compact Edition non è in grado di propagare questi elementi, nelle applicazioni basate su SQL Server Compact Edition sarà necessario implementare una logica equivalente. In tal modo, si potrà assicurare che il database di SQL Server Compact Edition resti consistente con il database di SQL Server. Se ad esempio il database di SQL Server include un vincolo CHECK, il codice dell'applicazione basata su SQL Server Compact Edition dovrà implementare il corrispondente controllo.

Creazione di indici in un database locale di SQL Server Compact Edition

È possibile creare indici univoci in un database di SQL Server Compact Edition locale, anche se tale database è un Sottoscrittore di una pubblicazione. Tale possibilità è utile, ma può causare problemi se il server di pubblicazione, ignaro del vincolo di univocità sulla colonna, invia dati non univoci al Sottoscrittore. Si immagini il caso di una tabella T con colonne C1 e C2 e una chiave primaria su C1.

C1

C2

A

1

B

2

C

3

Il database di SQL Server Compact Edition viene sottoposto a una prima sincronizzazione. Dopo tale sincronizzazione, un indice univoco viene aggiunto a C2 sul database di sottoscrizione. Al database di pubblicazione non viene apportata alcuna modifica.

Durante la sincronizzazione successiva, SQL Server inserisce le righe seguenti:

D

3

E

3

La sincronizzazione avrà esito negativo, perché il server di pubblicazione tenta di inserire valori non univoci in C2. Il problema permarrà fino a quando il vincolo di univocità non verrà rimosso dal database di sottoscrizione.

Vedere anche

Guida in linea e informazioni

Assistenza su SQL Server Compact Edition