SQL Server 2012:带有“或”条件的筛选索引

时间:2014-01-30 04:13:37

标签: tsql indexing sql-server-2012 filtered-index

我有SQL Server 2012 Standard和一个列[IS_Deleted]的表。

如何使用条件创建过滤索引?

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

2 个答案:

答案 0 :(得分:0)

正如评论所说,你不能这样做。有关详细信息,请参阅TechNet

考虑使用Arshad Ali在MSSQLTips

上讨论的索引视图
CREATE VIEW OnlyNotDeleted AS (    
 ...
 WHERE ISNULL(IS_Deleted,0)=0
)

然后索引视图上的相应字段。

答案 1 :(得分: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)