1

我有 SQL Server 2012 Standard 和一个带有 column 的表[IS_Deleted]

如何创建带有条件的过滤索引?

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

2 回答 2

0

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

考虑使用索引视图,如 Arshad Ali 在MSSQLTips上所讨论的那样

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

然后索引视图上的适当字段。

于 2014-02-15T16:47:04.340 回答
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)
于 2014-02-15T17:56:23.147 回答