내 고유 한 제약 조건이 왜 제약 대신 인덱스 아래에 나타나는가?

StackOverflow https://stackoverflow.com/questions/1012969

  •  06-07-2019
  •  | 
  •  

문제

TSQL 테이블에 다음과 같은 제약 조건을 만들었습니다.

alter table disabledqualities
add constraint uc_uIdQualCode
unique (userId, qualitycode)

MSSMStudio에서 제약 조건은 제약하에있는 지수 아래에 나타납니다.

왜요?

--편집하다--
제약 조건을 시행하기위한 색인을 생성한다는 것을 이해하지만 왜 "제약 조건"이라는 노드가 있습니까?

도움이 되었습니까?

해결책

SQL Server는 제약 조건을 시행하기 위해 현장 뒤에 인덱스를 만듭니다.

다음은 비 클러스터 지인에 대한 비 클러스터 지인을 추가하여 클러스터되지 않은 인덱스를 사용하기 위해 Clustered (기본값) 또는 다른 클러스터 된 인덱스가 없음을 제공 할 때 클러스터 된 클러스터를 만들 수 있다는 것을 작성하는 또 다른 방법입니다.

alter table disabledqualities
add constraint uc_uIdQualCode
unique nonclustered (userId, qualitycode)

편집] 노드는 확인 제약 조건을 추가하는 것입니다. 고유 한 제약 조건은 인덱스에 추가됩니다.

어느 쪽이든 마법사에서 멀리 떨어져 있습니다

다른 팁

제약 조건 및 기본 제약 조건이 제약 조건 노드에 표시됩니다.

SQL은 인덱스를 사용하여 고유 한 제약 조건을 시행합니다.

제약 조건을 시행하기위한 색인을 생성한다는 것을 이해하지만 왜 "제약 조건"이라는 노드가 있습니까?

이 노드는 표시됩니다 CHECK 제약.

진정한 대답은 "Microsoft가 그렇게 말했기 때문에. 대답을 원한다면 그들에게 물어봐야합니다"입니다.

Sysindexes 시스템보기에서 고유 한 제약 조건을 찾을 수 있기 때문에

sysIndexes에서 * name = 'uc_uidqualcode'에서 선택

스튜디오에서 새로운 고유 한 상수를 추가하는 것은 단순히 논리적입니다. 인덱스 및 키 버튼 관리를 클릭해야합니다. 따라서 인덱스에서 추가하는 경우 색인으로 볼 수 있어야합니다. :)

나는 당신이 수표 제약이 무엇인지 모르기 때문에 제약 조건에 무엇이 나타날지 이해하지 못할 것이라고 생각합니다. 체크 제약 조건은 삽입 또는 업데이트의 데이터를 확인하여 일종의 비즈니스 규칙을 충족하는지 확인합니다. 데이터 무결성을 보장하는 데 사용됩니다. 예를 들어 1,4 또는 5의 값 만 포함 해야하는 정수 필드가있는 경우 9 개가 필드에 추가되지 않도록 확인 제약 조건을 설정합니다. 날짜 필드의 점검 제약 조건은 PlannedCompletionDate 또는 The YatureDate가 시작보다 늦어야하는 필드의 현재 날짜 및 시간보다 늦어야한다고 지정할 수 있습니다. 이것들은 제약하에 나타나는 종류입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top