2014-01-30 1 views
1

SQL Server 2012 Standard 및 열 [IS_Deleted]이있는 테이블이 있습니다.SQL Server 2012 : "또는"조건의 필터링 된 인덱스

조건이있는 필터링 된 색인을 어떻게 만듭니 까?

where [IS_Deleted] is null or [IS_Deleted] = 0 
+0

또는 필터링 된 인덱스 정의에 허용되지 않습니다, 당신이 슬프게도이 조건 – steoleary

+0

을 만족하는 2 개 인덱스를 생성해야 할 것 믿고,이 중 계산 된 열에서 필터링 된 인덱스와 함께 할 수 없습니다. – Charles

답변

0

의견에 따르면 그렇게 할 수 없다고합니다. 자세한 내용은 TechNet을 참조하십시오.

뷰에 MSSQLTips

CREATE VIEW OnlyNotDeleted AS ( 
... 
WHERE ISNULL(IS_Deleted,0)=0 
) 

이어서 인덱스에 해당 필드 (들) 샤드 알리 논의 인덱싱 된 뷰뿐만 아니라 사용을 고려한다.

0

또 다른 옵션으로이 열을 사용하여 계산 열과 인덱스를 만들 수 있습니다.

create table tst10 (
    id int, 
    f int 
) 

insert into tst10(id, f) values (1, 0) 
insert into tst10(id, f) values (2, 1) 
insert into tst10(id) values (3) 

select * from tst10 

alter table tst10 
add dummyColumn as ISNULL(f, 0) 

select * from tst10 

create index dummyColumnIdx on tst10(dummyColumn)