2010-07-15 4 views
4

테이블을 만들고 기본 키를 추가하고 싶습니다.기본 키의 인덱스 이름

필자의 이해로 MS SQL은 기본 키에 클러스터 된 인덱스를 추가하고 기본 이름으로 이름을 지정합니다.

가능한 경우 테이블을 만들고 기본으로 생성 된 인덱스에 대한 사용자 지정 이름을 할당하고 싶습니다. 또는 테이블을 만든 후 기본 이름을 어떻게 바꿀 수 있습니까?

감사합니다.

+0

? 또는 열 (키)에 대해? –

+1

SQL 서버에서는 클러스터 된 인덱스를 기본 키에 두지 않습니다. 예, 기본값입니다. 그러나 '기본 키가 클러스터되지 않음'도 작동합니다. 다른 클러스터 된 인덱스를 추가하지 않는 한 테이블은 힙이됩니다. 인덱스에 대한 –

+0

하시기 바랍니다 – GibboK

답변

9

물론 - 당신이 당신의 CREATE TABLE 문에서 PRIMARY KEY 제한 조건을 정의 할 수 있습니다.

이 기본 PRIMARY KEY

CREATE TABLE dbo.Table 
    (ID INT IDENTITY PRIMARY KEY, 
    .......) 

를 생성합니다하지만 당신은 완전히 너무 제약 조건의 이름을 정의 할 수 있습니다 : 인덱스에 대한

CREATE TABLE dbo.Table2 
    (ID INT IDENTITY CONSTRAINT PK_Table2 PRIMARY KEY, 
    ......) 
+0

괜찮지 만 기본 인덱스 대신 인덱스의 이름을 어떻게 선택할 수 있습니까? – GibboK

+0

@GlbboK : 나의 두 번째 예제를 보아라 - 인덱스의 이름 인 CONSTRAINT의 이름을 선택할 수있다 :'CONSTRAINT PK_Table2 PRIMARY KEY' - 당신은'PK_Table2' 또는 당신이 원하는 다른 것을 선택할 수있다. 불러라.... –

-3

클러스터 된 기본 키를 만들면 인덱스를 만들지 않고 인덱스로 구성된 테이블을 만들 수 있습니다.

클러스터 된 기본 키는 SqlServer에 기본 키가있는 테이블을 만들 때 기본 옵션입니다.

http://msdn.microsoft.com/en-us/library/aa933131(SQL.80).aspx

+0

오, 네, ** ** 인덱스를 만드십시오! 그것은 클러스터 된 인덱스입니다. 그렇습니다. 테이블은 그 인덱스에 의해 정렬됩니다. 그러나 여전히 인덱스입니다. –

+0

나는 oracle을 사용한다. oracle IOT Tables (Organization Index)는 SqlServer Clustered Tables와 유사합니다. IOT 테이블의 인덱스 세그먼트는 TableName (동일한 세그먼트)으로 명명됩니다. – x77

관련 문제