> 데이터 베이스 > MySQL 튜토리얼 > SQL Server 테이블 변수에 인덱스를 만들 수 있나요?

SQL Server 테이블 변수에 인덱스를 만들 수 있나요?

Mary-Kate Olsen
풀어 주다: 2025-01-12 21:32:46
원래의
969명이 탐색했습니다.

Can I Create Indexes on SQL Server Table Variables?

SQL Server 테이블 변수의 인덱스

SQL Server 2014 이상에서는 인라인 구문을 사용하여 테이블 변수에 직접 인덱스를 생성할 수 있습니다. 예:

<code class="language-sql">DECLARE @T TABLE (
  C1 INT INDEX IX1 CLUSTERED,
  C2 INT INDEX IX2 NONCLUSTERED,
  INDEX IX3 NONCLUSTERED(C1, C2),
);</code>
로그인 후 복사

반면 SQL Server 2000~2012에서는 테이블 변수에 인덱스를 명시적으로 생성할 수 없습니다. 그러나 암시적 인덱스는 제약 조건 선언을 통해 생성될 수 있습니다.

SQL Server 2000에서 이름 열에 대한 인덱스 생성

다음 테이블 변수 선언을 고려하세요.

<code class="language-sql">DECLARE @TEMPTABLE TABLE (
  [ID] [INT] NOT NULL PRIMARY KEY,
  [Name] [NVARCHAR] (255) COLLATE DATABASE_DEFAULT NULL,
);</code>
로그인 후 복사

이름 열에 인덱스를 생성할 수 있나요?

예. UNIQUE NONCLUSTERED 제약 조건을 사용하여 이름 열에 인덱스를 생성할 수 있습니다. 구문은 다음과 같습니다.

<code class="language-sql">DECLARE @TEMPTABLE TABLE (
  [ID] [INT] NOT NULL PRIMARY KEY,
  [Name] [NVARCHAR] (255) COLLATE DATABASE_DEFAULT NULL,
  UNIQUE NONCLUSTERED ([Name], [ID]),
);</code>
로그인 후 복사

테이블 변수에 대한 인덱스 구현

SQL Server의 기존 테이블은 클러스터형 인덱스 또는 힙일 수 있습니다. 테이블 변수에서 인덱스는 제약 조건을 통해서만 암시적으로 생성됩니다. 이는 테이블 변수에 생성할 수 있는 인덱스 유형이 제한되어 있음을 의미합니다.

다음 표에는 다양한 유형의 인덱스와 SQL Server 2000~2012의 테이블 변수에 인덱스를 생성할 수 있는지 여부가 요약되어 있습니다.

索引类型 表变量支持
唯一聚集索引
非唯一聚集索引
堆上的唯一非聚集索引
堆上的非唯一非聚集索引
聚集索引上的唯一非聚集索引
聚集索引上的非唯一非聚集索引

제공된 예에서는 이름 및 ID에 고유 인덱스를 생성하여 이름 열의 고유하지 않은 비클러스터형 인덱스를 시뮬레이션합니다. 이는 SQL Server가 고유하지 않은 인덱스 키에 클러스터형 인덱스 키를 암시적으로 추가하기 때문입니다.

위 내용은 SQL Server 테이블 변수에 인덱스를 만들 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿