2010-07-28 2 views
3

,SQL Server 2008에서 제약 조건을 만든 방법을 어떻게 알 수 있습니까? 제약 조건을 만드는 두 가지 방법이 있습니다

방법 A

:

ALTER TABLE dbo.<tablename> ADD CONSTRAINT 
<namingconventionconstraint> UNIQUE NONCLUSTERED 
(
<columnname> 

방법 B : 그러나

CREATE UNIQUE NONCLUSTERED INDEX 
<namingconventionconstraint> ON dbo.<tablename> 
(
<columnname> 
) ON [PRIMARY] 

, 이러한 제약이 제거 될 필요가 나타납니다 (드롭 제약 조건 대 드롭 인덱스) 어떻게 생성되었는지에 의존하는 방법을 사용합니다. 메서드를 테스트하고 실패했는지 확인하는 것 이외에 제약 조건이 생성 된 메서드를 확인하는 방법이 있습니까? SQL Server에서 드롭 스크립트를 만들 수 있지만 일종의 쿼리를 찾고 있음을 알고 있습니다. 같은 인덱스를 가질 수있는 이유

답변

8
  • 고유 제한 조건이이 고유 인덱스가 모두 sys.indexes

에 표시

  • 는 sys.objects에 표시되지sys.objects with type = UQ
  • 에 나타납니다 많은 테이블의 이름이지만 테이블 수준의 고유 한 제약 조건은 데이터베이스/스키마 고유이어야합니다.

  • +0

    데이터베이스 현재 wi를 다루고있는 데이터베이스 이 문제는 고유 한 제약 조건과 UQ가 접두사로 붙은 고유 인덱스를 모두 가지고 있기 때문에 여전히 sys.objects에서 다를 수 있습니까? ** 편집 ** 저조한 말로 그 문제를 깨달았습니다. SQL Server Management Studio의 각 테이블 아래에있는 인덱스 폴더를 보면 UQ 접두사가 붙습니다. sys.objects를 볼 때 그들의 유형이 여전히 다를 것입니까? –

    +0

    @stocherilac : sys.objects에 고유 인덱스 항목 (메서드 B)이 존재하지 않습니다. – gbn

    +0

    감사합니다. –

    관련 문제