2016-08-10 2 views
0

클러스터 된 인덱스를 다음보기에 추가하려면 어떻게합니까?SQL Server : 파생 테이블을 참조하므로보기에 인덱스를 만들 수 없습니다.

CREATE UNIQUE CLUSTERED INDEX IDX_V1 
ON [vExcludedIds] (Id); 

그리고 나는 다음과 같은 오류 얻을 :

CREATE VIEW [vExcludedIds] 
WITH SCHEMABINDING 
AS 
    SELECT DISTINCT 
     TempTable.Id 
    FROM 
     (VALUES (1), (2), (3)) AS TempTable(Id) 

그리고 내 인덱스 생성 명령은 내가 SQL Server Management Studio를 수동으로 인덱스를 추가 할 때, 또한

Cannot create index on view "Test.dbo.vExcludedIds" because it references derived table "TempTable" (defined by SELECT statement in FROM clause). Consider removing the reference to the derived table or not indexing the view.

을 , "New Index"창 상단에 오류가 표시됩니다.

어떤 아이디어를주십시오?

+1

이보기의 목적은 무엇입니까? 테이블을 만드십시오. –

답변

4

읽어 보시기 바랍니다 https://msdn.microsoft.com/en-AU/library/ms191432.aspx

많은 제약이 인덱싱 된 뷰를 만들 수 있습니다.

... 뷰 정의의 SELECT 문은 다음 Transact-SQL 요소를 포함 할 수 없습니다 :

  • DISTINCT를
  • 파생 테이블

테이블 또는 테이블 함수를 만드는 고려

관련 문제