2010-03-11 2 views
1

데이터베이스 서버에 키를 중복 : - 8.00.760 - SP3 - SQL 서버 2000 스탠다드 에디션SQL Server 2000의 잘못된 메시지 : 고유 인덱스

나는 큰를 추가 할 5 열 (와 테이블이 300.000) 개의 레코드 수. 두 열의 조합에 대해 고유 색인이 있습니다.

메시지 2601, 수준 14, 상태 3, 줄 1 고유 인덱스 객체 TESTTABLE '에 중복 키 행을 삽입 할 수 없습니다 : 나는 곳이 고유 인덱스에 레코드를 추가하는 경우, SQL 서버는이 오류 메시지를 제공합니다 '테스트'. 명세서가 종료되었습니다.

(0 개 행 적용됨)

그러나, 나는 고유 인덱스를 삭제 한 다음 레코드를 추가하면 내가 나중에이 고유 인덱스를 만들 때, 내가 어떤 오류가 발생하지 않습니다.

+0

레코드를 추가 할 때 무엇을 사용합니까? – VladV

+0

Microsoft SQL Server Management Studio Express 9.00.2047.00 -> 300k 레코드를 추가하려는 테이블을 포함하는 동일한 데이터베이스의 테이블로 조인 된 다른 서버의 테이블에서 레코드를 선택하는 삽입 쿼리입니다. – George

답변

0

고유 한 색인을 구성하는 입력란을 확인하십시오.

INSERT가 실패한 필드의 원본 데이터에 복제본이 있습니다.

당신이하는 일은 데이터의 성격에 달려 있습니다. 한 행이 다른 행보다 새로운 경우 원래를 더 이상 사용하지 않으면 제거 할 수 있습니다. 그렇지 않으면, 대한 비즈니스 사람들이 이야기 -

  • 열에 고유 제한 조건이 몇 가지 문제가 쉽게 해결 될 수

필요한지 여부를 당신이 속는 데이터

  • 으로해야 할 일. 이 솔루션의 경우 대부분의 솔루션은 실제로 비 기술적입니다.

  • +0

    내가 아는 한 내가 추가하고 싶은 레코드에는 중복 된 데이터가 없다. 이 인덱스가없는 레코드를 추가하면 오류 메시지가 나타나지 않고 레코드를 추가 한 후에이 고유 인덱스를 추가 할 수 있습니다. 하지만 고유 인덱스를 처음 만들었을 때 레코드를 추가 할 수 없습니다! – George

    0

    귀하의 가정 중 하나가 잘못되었습니다. 그들을 다시 방문하십시오. 색인의 특성, 들어오는 데이터, 기존 데이터 (있는 경우), 데이터 정렬 (대소 문자를 구분하지 않음/대소 문자 구분).

    0

    ALTER TABLE에서 WITH NOCHECK를 사용하는 고유 제한 조건 (인덱스 아님)?