我有 SQL Server 2012 Standard 和一个带有 column 的表[IS_Deleted]
。
如何创建带有条件的过滤索引?
where [IS_Deleted] is null or [IS_Deleted] = 0
我有 SQL Server 2012 Standard 和一个带有 column 的表[IS_Deleted]
。
如何创建带有条件的过滤索引?
where [IS_Deleted] is null or [IS_Deleted] = 0
正如评论所说,你不能这样做。有关详细信息,请参阅TechNet。
考虑使用索引视图,如 Arshad Ali 在MSSQLTips上所讨论的那样
CREATE VIEW OnlyNotDeleted AS (
...
WHERE ISNULL(IS_Deleted,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)