MSSQL_ENG002627MSSQL_ENG002627

In questo argomento si applica a: SìSQL ServernonDatabase SQL di AzurenonAzure SQL Data Warehouse non Parallel Data WarehouseTHIS TOPIC APPLIES TO: yesSQL ServernoAzure SQL DatabasenoAzure SQL Data Warehouse noParallel Data Warehouse

Dettagli messaggioMessage Details

Nome prodottoProduct Name SQL ServerSQL Server
ID eventoEvent ID 26272627
Origine eventoEvent Source MSSQLSERVERMSSQLSERVER
ComponenteComponent Motore di database di SQL ServerSQL Server Database Engine
Nome simbolicoSymbolic Name N/DN/A
Testo del messaggioMessage Text Violazione del vincolo %ls '%.ls'.Violation of %ls constraint '%.ls'. Non è possibile inserire la chiave duplicata nell'oggetto '%.*ls'.Cannot insert duplicate key in object '%.*ls'.

SpiegazioneExplanation

Questo errore generale può essere generato indipendentemente dal fatto che un database venga o meno replicato.This is a general error that can be raised regardless of whether a database is replicated. Nei database replicati l'errore viene di solito generato in quanto le chiavi primarie non sono state gestite correttamente nella topologia.In replicated databases, the error is typically raised because primary keys have not been managed appropriately across the topology. In un ambiente distribuito è fondamentale garantire che lo stesso valore non venga inserito in una colonna chiave primaria o in qualsiasi altra colonna univoca in più di un nodo.In a distributed environment it is essential to ensure that the same value is not inserted into a primary key column or any other unique column at more than one node. Le cause possibile includono:Possible causes include the following:

  • Le operazioni di inserimento e aggiornamento su una riga vengono eseguite in più di un nodo.Inserts and updates to a row are occurring at more than one node. Sebbene la replica di tipo merge e le sottoscrizioni aggiornabili per la replica transazionale consentano il rilevamento e la risoluzione dei conflitti, è preferibile inserire o aggiornare una determinata riga in un unico nodo.Merge replication and updatable subscriptions for transactional replication both provide conflict detection and resolution, but it is still preferable to insert or update a given row at only one node. La replica transazionale di tipo peer-to-peer non fornisce funzioni di rilevamento e risoluzione dei conflitti e richiede il partizionamento degli inserimenti e degli aggiornamenti.Peer-to-peer transactional does not provide conflict detection and resolution; it requires that inserts and updates be partitioned.

  • È stata inserita una riga in un Sottoscrittore che dovrebbe essere di sola lettura.A row was inserted at a Subscriber that should be read-only. I Sottoscrittori delle pubblicazioni snapshot devono essere considerati come di sola lettura, analogamente ai Sottoscrittori delle pubblicazioni transazionali a meno che non vengano utilizzate sottoscrizioni aggiornabili o una replica transazione peer-to-peer.Subscribers to snapshot publications should be treated as read-only, as should Subscribers to transactional publications unless updatable subscriptions or peer-to-peer transactional replication is used.

  • Viene utilizzata una tabella con una colonna Identity, ma la colonna non è gestita in modo appropriato.A table with an identity column is being used, but the column is not managed appropriately.

Azione dell'utenteUser Action

L'azione richiesta dipende dal motivo per il quale è stato generato l'errore:The action required depends on the reason the error was raised:

  • Le operazioni di inserimento e aggiornamento su una riga vengono eseguite in più di un nodo.Inserts and updates to a row are occurring at more than one node.

    Indipendentemente dal tipo di replica utilizzato, è consigliabile partizionare inserimenti e aggiornamenti quando possibile, in modo da ridurre l'elaborazione richiesta per il rilevamento e la risoluzione dei conflitti.Regardless of the type of replication used, we recommend that you partition inserts and updates whenever possible, because this reduces the processing required for conflict detection and resolution. Per la replica transazionale peer-to-peer, è richiesto il partizionamento di inserimenti e aggiornamenti.For peer-to-peer transactional replication, partitioning inserts and updates is required. Per altre informazioni, vedere Peer-to-Peer Transactional Replication.For more information, see Peer-to-Peer Transactional Replication.

  • È stata inserita una riga in un Sottoscrittore che dovrebbe essere di sola lettura.A row was inserted at a Subscriber that should be read-only.

    Non inserire o aggiornare righe nel Sottoscrittore a meno che non si stia utilizzando la replica di tipo merge, la replica transazionale con sottoscrizioni aggiornabili o la replica transazionale peer-to-peer.Do not insert or update rows at the Subscriber unless you are using merge replication, transactional replication with updatable subscriptions, or peer-to-peer transactional replication.

  • Viene utilizzata una tabella con una colonna Identity, ma la colonna non è gestita in modo appropriato.A table with an identity column is being used, but the column is not managed appropriately.

    Per la replica di tipo merge e la replica transazionale con sottoscrizioni aggiornabili, le colonne Identity devono essere gestite automaticamente dalla replica.For merge replication and transactional replication with updatable subscriptions, identity columns should be managed automatically by replication. Per la replica transazionale peer-to-peer, devono invece essere gestite manualmente.For peer-to-peer transactional replication, they must be managed manually. Per altre informazioni, vedere Replicare colonne Identity.For more information, see Replicate Identity Columns.

Vedere ancheSee Also

Guida di riferimento a errori ed eventi (replica) Errors and Events Reference (Replication)
Replica di tipo merge Merge Replication
Peer-to-Peer Transactional Replication Peer-to-Peer Transactional Replication
Sottoscrizioni aggiornabili per la replica transazionaleUpdatable Subscriptions for Transactional Replication