MSSQL_ENG002601MSSQL_ENG002601

이 항목 적용 대상: 예SQL Server없습니다Azure SQL 데이터베이스없습니다Azure SQL 데이터 웨어하우스 없습니다 병렬 데이터 웨어하우스THIS TOPIC APPLIES TO: yesSQL ServernoAzure SQL DatabasenoAzure SQL Data Warehouse noParallel Data Warehouse

메시지 정보Message Details

제품 이름Product Name SQL ServerSQL Server
이벤트 IDEvent ID 26012601
이벤트 원본Event Source MSSQLSERVERMSSQLSERVER
구성 요소Component SQL Server 데이터베이스 엔진SQL Server Database Engine
심볼 이름Symbolic Name 해당 사항 없음N/A
메시지 텍스트Message Text 고유 인덱스가 '%.*ls'인 개체 '%.ls'에 중복 키 행을 삽입할 수 없습니다.Cannot insert duplicate key row in object '%.ls' with unique index '%.*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.

  • 병합 복제에서 이 오류는 시스템 테이블인 MSmerge_contents에 삽입하는 동안에도 발생할 수 있습니다. 발생하는 오류는 "고유 인덱스가 'ucl1SycContents'인 개체 'MSmerge_contents'에 중복 키 행을 삽입할 수 없습니다"와 비슷합니다.In merge replication, this error can also occur during an insert into the system table MSmerge_contents; the error raised is similar to: Cannot insert duplicate key row in object 'MSmerge_contents' with unique index 'ucl1SycContents.'

사용자 동작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.

  • 시스템 테이블인 MSmerge_contents에 삽입하는 동안 오류가 발생합니다.The error occurs during an insert into the system table MSmerge_contents.

    이 오류는 join_unique_key조인 필터 속성에 대한 값이 잘못되었기 때문에 발생할 수 있습니다.This error can occur because of an incorrect value for the join filter property join_unique_key. 부모 테이블의 조인된 열이 고유한 경우에만 이 속성을 TRUE로 설정해야 합니다.This property should be set to TRUE only if the joined column in the parent table is unique. 속성이 TRUE로 설정되어 있지만 열이 고유하지 않은 경우에는 이 오류가 발생합니다.If the property is set to TRUE, but the column is not unique, this error is raised. 이 속성을 설정하는 방법은 Define and Modify a Join Filter Between Merge Articles을 참조하십시오.For more information on setting this property, see Define and Modify a Join Filter Between Merge Articles.

관련 항목:See Also

오류 및 이벤트 참조(복제)Errors and Events Reference (Replication)