PRB: How generare uno snapshot di una tabella pubblicata e applica l'IT a server di sottoscrizione

Il presente articolo è stato tradotto tramite il software di traduzione automatica di Microsoft e non da una persona. Microsoft offre sia articoli tradotti da persone fisiche sia articoli tradotti automaticamente da un software, in modo da rendere disponibili tutti gli articoli presenti nella nostra Knowledge Base nella lingua madre dell’utente. Tuttavia, un articolo tradotto in modo automatico non è sempre perfetto. Potrebbe contenere errori di sintassi, di grammatica o di utilizzo dei vocaboli, più o meno allo stesso modo di come una persona straniera potrebbe commettere degli errori parlando una lingua che non è la sua. Microsoft non è responsabile di alcuna imprecisione, errore o danno cagionato da qualsiasi traduzione non corretta dei contenuti o dell’utilizzo degli stessi fatto dai propri clienti. Microsoft, inoltre, aggiorna frequentemente il software di traduzione automatica.

Clicca qui per visualizzare la versione originale in inglese dell’articolo: 305127
Questo articolo è stato archiviato. L’articolo, quindi, viene offerto “così come è” e non verrà più aggiornato.
Sintomi
SQL Server 2000 consente la replica di integrità referenziale dichiarata (DRI, Declarative Referential Integrity) ai server di sottoscrizione tramite lo snapshot iniziale. L'aggiunta di questa funzionalità rappresenta un miglioramento significativo delle prestazioni per SQL Server 2000 rispetto alle altre versioni, ma potrebbe provocare risultati imprevisti quando lo snapshot viene applicato a un server di sottoscrizione. Se si tenta di apportare le modifiche dello schema quando lo snapshot viene applicato, sincronizzazione non riesce con uno o entrambi dei seguenti messaggi di errore:
4929: Impossibile modificare come % 3! ' %. * ls' perché è pubblicata per la replica.

3727: Impossibile eliminare il vincolo. Vedere gli errori precedenti.
In questo articolo viene descritto come applicare uno snapshot in una tabella pubblicata per risincronizzare i dati senza modificare lo schema.
Cause
Quando l'agente snapshot di SQL Server 2000 elimina e ricrea o troncamento di una tabella, Elimina tutti i vincoli della tabella prima. Questo comportamento è legato alla progettazione del prodotto e viene implementato da una chiamata alla routine sp_MSdroparticlecontraints memorizzati, che accetta una tabella di destinazione e il proprietario come parametri e scorre tutti i vincoli della tabella. La procedura sp_MSdroparticlecontraints memorizzati Elimina chiavi primarie ed esterno e i vincoli UNIQUE e CHECK.

Se un articolo pubblicato presente nel server di sottoscrizione, è possibile selezionare una delle seguenti opzioni nella scheda snapshot :
  • Mantenere invariata la tabella esistente.
  • Eliminare la tabella esistente e ricrearlo.
  • Eliminare i dati della tabella esistente che soddisfano il filtro di riga.
  • Eliminare tutti i dati nella tabella esistente.
Per selezionare un'opzione nella finestra Proprietà di pubblicazione nella finestra di dialogo fare clic su articoli , fare clic su articolo i puntini di sospensione (...) e quindi fare clic su snapshot .

Con qualsiasi selezione diverso da mantenere esistente... , la cartella di snapshot di pubblicazione contiene un file denominato Snapshot.pre. Snapshot.ext chiama la routine di sp_MSdroparticlecontraints memorizzati nel database master e tenta di eliminare i vincoli per la tabella di destinazione. Se, per qualsiasi motivo, è Impossibile eliminare un vincolo, la sincronizzazione di dati e l'agente snapshot ha esito negativo.
Workaround
Per aggirare il problema ed evitare il messaggio di errore, selezionare l'opzione di mantenere invariata la tabella esistente . L'opzione Mantieni la tabella esistente invariata impedisce la creazione del file Snapshot.pre dell'agente snapshot. È possibile quindi eseguire uno script la tabella di destinazione prima dell'applicazione di snapshot, come descritto nell'argomento "Esecuzione script prima e dopo la snapshot viene applicato" nella documentazione in linea di SQL Server 2000. Questa è una funzionalità utile perché l'agente snapshot esegue automaticamente qualsiasi manipolazione dei dati viene specificato prima sincronizzazione.
Snapshot di replica REPL DRI

Avviso: questo articolo è stato tradotto automaticamente

Proprietà

ID articolo: 305127 - Ultima revisione: 01/16/2015 23:15:28 - Revisione: 2.4

Microsoft SQL Server 2000 Enterprise Edition, Microsoft SQL Server 2000 Developer Edition

  • kbnosurvey kbarchive kbmt kbprb KB305127 KbMtit
Feedback