我希望尝试在SQL Server 2012
中的表上使用过滤索引来查看它是否会改善查询执行,但在尝试创建它时我收到以下错误:
Msg 10735,Level 15,State 1,Line 3
筛选索引的错误WHERE子句' IX_SRReferralIn_Filtered'在桌子上' dbo.SRReferralIn'。
以下是我正在使用的声明。 RowIdentifier
和IDOrganisationVisibleTo
是CLUSTERED PRIMARY KEY
CREATE NONCLUSTERED INDEX IX_SRReferralIn_Filtered
ON dbo.SRReferralIn(RowIdentifier, IDOrganisationVisibleTo)
WHERE IDOrganisationVisibleTo = IDOrganisation;
不支持WHERE
子句中的表达式吗?
答案 0 :(得分:4)
语法只允许与常量进行比较
<filter_predicate> ::=
<conjunct> [ AND <conjunct> ]
<conjunct> ::=
<disjunct> | <comparison>
<disjunct> ::=column_name IN (constant ,...n)
<comparison> ::=column_name <comparison_op> constant<comparison_op> ::=
{ IS | IS NOT | = | <> | != | > | >= | !> | < | <= | !< }
您可以使用此条件创建索引视图。