MSSQL_ENG020598MSSQL_ENG020598

Dettagli messaggioMessage Details

Nome prodottoProduct Name SQL ServerSQL Server
ID eventoEvent ID 2059820598
Origine eventoEvent Source MSSQLSERVERMSSQLSERVER
ComponenteComponent Motore di database di SQL ServerSQL Server Database Engine
Nome simbolicoSymbolic Name
Testo del messaggioMessage Text Impossibile trovare la riga nel Sottoscrittore durante l'applicazione del comando replicato.The row was not found at the Subscriber when applying the replicated command.

SpiegazioneExplanation

Questo errore viene generato nella replica transazionale se l'agente di distribuzione tenta di aggiornare una riga nel Sottoscrittore mentre la riga è stata eliminata o la chiave primaria della riga è stata modificata.This error is raised in transactional replication if the Distribution Agent attempts to update a row at the Subscriber, but the row has been deleted or the primary key of the row has been changed. Per impostazione predefinita, i Sottoscrittori di pubblicazioni transazionali devono essere considerati di sola lettura poiché le modifiche non vengono trasferite al server di pubblicazione.By default, Subscribers to transactional publications should be treated as read-only, because changes are not propagated back to the Publisher. Nella replica transazionale, gli utenti possono eseguire modifiche nel Sottoscrittore solo se utilizzano sottoscrizioni aggiornabili o la replica peer-to-peer.For transactional replication, user changes should be made at the Subscriber only if updatable subscriptions or peer-to-peer replication is used. Per informazioni sulle opzioni menzionate, vedere Updatable Subscriptions for Transactional Replication e Peer-to-Peer Transactional Replication.For information about these options, see Updatable Subscriptions for Transactional Replication and Peer-to-Peer Transactional Replication.

Azione dell'utenteUser Action

Per risolvere il problema:To resolve this problem:

  1. Se si desidera che la replica continui mentre si identifica l'origine dell'errore, specificare il parametro -SkipErrors 20598 per l'agente di distribuzione.If replication must continue while you identify the source of the error, specify the parameter -SkipErrors 20598 for the Distribution Agent. In questo modo l'agente ignorerà le modifiche che generano l'errore 20598 e consentirà la replica delle altre modifiche.This allows the agent to skip changes that result in error 20598, while allowing other changes to be replicated.

  2. Identificare le righe eliminate o che presentano una chiave primaria diversa nel Sottoscrittore rispetto alle righe corrispondenti nel server di pubblicazione.Identify which rows at the Subscriber have been deleted or have a different primary key than the corresponding rows at the Publisher. È possibile utilizzare la tablediff Utility per determinare quali righe risultano diverse nei database di pubblicazione e di sottoscrizione.You can use the tablediff Utility to determine which rows are different in the publication and subscription databases. Per informazioni sull'uso di questa utilità con database di replica, vedere Confrontare tabelle replicate al fine di individuare le differenze (programmazione della replica).For information about using this utility with replicated databases, see Compare Replicated Tables for Differences (Replication Programming).

  3. Correggere le righe nel Sottoscrittore utilizzando l'utilità tablediff o un altro metodo.Correct the rows at the Subscriber using the tablediff utility or another method.

  4. (Facoltativo) Rimuovere il parametro -SkipErrors .(Optional) Remove the -SkipErrors parameter.

Vedere ancheSee Also

Guida di riferimento a errori ed eventi (replica)Errors and Events Reference (Replication)