MSSQL_ENG002627MSSQL_ENG002627

메시지 정보Message Details

제품 이름Product Name SQL ServerSQL Server
이벤트 IDEvent ID 26272627
이벤트 원본Event Source MSSQLSERVERMSSQLSERVER
구성 요소Component SQL Server 데이터베이스 엔진SQL Server Database Engine
심볼 이름Symbolic Name 해당 사항 없음N/A
메시지 텍스트Message Text %ls 제약 조건 '%.ls'을(를) 위반했습니다.Violation of %ls constraint '%.ls'. 개체 '%.*ls'에 중복 키를 삽입할 수 없습니다.Cannot insert duplicate key in object '%.*ls'.

설명Explanation

이 오류는 데이터베이스의 복제 여부에 관계없이 발생할 수 있는 일반 오류입니다.This is a general error that can be raised regardless of whether a database is replicated. 복제된 데이터베이스에서 이 오류는 일반적으로 토폴로지 내에서 기본 키가 제대로 관리되지 않았기 때문에 발생합니다.In replicated databases, the error is typically raised because primary keys have not been managed appropriately across the topology. 분산 환경에서는 둘 이상의 노드에서 기본 키 열 또는 다른 고유 열에 동일한 값이 삽입되지 않도록 해야 합니다.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. 가능한 원인은 다음과 같습니다.Possible causes include the following:

  • 둘 이상의 노드에서 행 삽입 및 업데이트가 발생합니다.Inserts and updates to a row are occurring at more than one node. 병합 복제 및 트랜잭션 복제에 대한 업데이트할 수 있는 구독은 둘 다 충돌 감지 및 해결 기능을 제공하지만 한 노드에서만 특정 행을 삽입 또는 업데이트하는 것이 좋습니다.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. 피어 투 피어 트랜잭션은 충돌 감지 및 해결 기능을 제공하지 않으므로 삽입과 업데이트를 분할해야 합니다.Peer-to-peer transactional does not provide conflict detection and resolution; it requires that inserts and updates be partitioned.

  • 읽기 전용이어야 하는 구독자에서 행이 삽입되었습니다.A row was inserted at a Subscriber that should be read-only. 업데이트할 수 있는 구독 또는 피어 투 피어 트랜잭션 복제를 사용하는 경우가 아니면 트랜잭션 게시에 대한 구독자와 마찬가지로 스냅숏 게시에 대한 구독자는 읽기 전용으로 취급되어야 합니다.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.

  • ID 열이 있는 테이블이 사용되지만 해당 열이 적절히 관리되지 않습니다.A table with an identity column is being used, but the column is not managed appropriately.

사용자 동작User Action

필요한 동작은 오류 발생 원인에 따라 다릅니다.The action required depends on the reason the error was raised:

  • 둘 이상의 노드에서 행 삽입 및 업데이트가 발생합니다.Inserts and updates to a row are occurring at more than one node.

    사용된 복제 유형에 관계없이 가능한 경우 삽입 및 업데이트를 분할하는 것이 좋습니다. 이렇게 하면 충돌 감지 및 해결 과정이 간편해집니다.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. 피어 투 피어 트랜잭션 복제의 경우 삽입과 업데이트를 분할해야 합니다.For peer-to-peer transactional replication, partitioning inserts and updates is required. 자세한 내용은 Peer-to-Peer Transactional Replication을 참조하세요.For more information, see Peer-to-Peer Transactional Replication.

  • 읽기 전용이어야 하는 구독자에서 행이 삽입되었습니다.A row was inserted at a Subscriber that should be read-only.

    병합 복제, 업데이트할 수 있는 구독이 있는 트랜잭션 복제 또는 피어 투 피어 트랜잭션 복제를 사용하는 경우가 아니면 구독자에서 행을 삽입 또는 업데이트하지 마십시오.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.

  • ID 열이 있는 테이블이 사용되지만 해당 열이 적절히 관리되지 않습니다.A table with an identity column is being used, but the column is not managed appropriately.

    병합 복제 및 업데이트할 수 있는 구독이 있는 트랜잭션 복제의 경우 ID 열은 복제에 의해 자동으로 관리됩니다.For merge replication and transactional replication with updatable subscriptions, identity columns should be managed automatically by replication. 피어 투 피어 트랜잭션 복제의 경우 ID 열을 수동으로 관리해야 합니다.For peer-to-peer transactional replication, they must be managed manually. 자세한 내용은 ID 열 복제를 참조하세요.For more information, see Replicate Identity Columns.

관련 항목:See Also

오류 및 이벤트 참조(복제) Errors and Events Reference (Replication)
병합 복제 Merge Replication
Peer-to-Peer Transactional Replication Peer-to-Peer Transactional Replication
트랜잭션 복제를 위한 업데이트 가능 구독 Updatable Subscriptions for Transactional Replication