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

Traduzione articoli Traduzione articoli
Identificativo articolo: 305127 - Visualizza i prodotti a cui si riferisce l?articolo.
Espandi tutto | Chiudi tutto

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.

Proprietà

Identificativo articolo: 305127 - Ultima modifica: giovedì 22 febbraio 2007 - Revisione: 2.4
Le informazioni in questo articolo si applicano a:
  • Microsoft SQL Server 2000 Enterprise Edition
  • Microsoft SQL Server 2000 Developer Edition
Chiavi: 
kbmt kbprb KB305127 KbMtit
Traduzione automatica articoli
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
LE INFORMAZIONI CONTENUTE NELLA MICROSOFT KNOWLEDGE BASE SONO FORNITE SENZA GARANZIA DI ALCUN TIPO, IMPLICITA OD ESPLICITA, COMPRESA QUELLA RIGUARDO ALLA COMMERCIALIZZAZIONE E/O COMPATIBILITA' IN IMPIEGHI PARTICOLARI. L'UTENTE SI ASSUME L'INTERA RESPONSABILITA' PER L'UTILIZZO DI QUESTE INFORMAZIONI. IN NESSUN CASO MICROSOFT CORPORATION E I SUOI FORNITORI SI RENDONO RESPONSABILI PER DANNI DIRETTI, INDIRETTI O ACCIDENTALI CHE POSSANO PROVOCARE PERDITA DI DENARO O DI DATI, ANCHE SE MICROSOFT O I SUOI FORNITORI FOSSERO STATI AVVISATI. IL DOCUMENTO PUO' ESSERE COPIATO E DISTRIBUITO ALLE SEGUENTI CONDIZIONI: 1) IL TESTO DEVE ESSERE COPIATO INTEGRALMENTE E TUTTE LE PAGINE DEVONO ESSERE INCLUSE. 2) I PROGRAMMI SE PRESENTI, DEVONO ESSERE COPIATI SENZA MODIFICHE, 3) IL DOCUMENTO DEVE ESSERE DISTRIBUITO INTERAMENTE IN OGNI SUA PARTE. 4) IL DOCUMENTO NON PUO' ESSERE DISTRIBUITO A SCOPO DI LUCRO.

Invia suggerimenti

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com