SQL 服务器筛选索引 WHERE Column = Column

SQL Server Filtered Index WHERE Column = Column

我希望尝试在 SQL Server 2012 中的 table 上使用过滤索引,看看它是否会改善查询执行,但在尝试创建它时出现以下错误:

Msg 10735, Level 15, State 1, Line 3
Incorrect WHERE clause for filtered index 'IX_SRReferralIn_Filtered' on table 'dbo.SRReferralIn'.

下面是我使用的语句。 RowIdentifierIDOrganisationVisibleToCLUSTERED PRIMARY KEY

中的列
CREATE NONCLUSTERED INDEX IX_SRReferralIn_Filtered
ON dbo.SRReferralIn(RowIdentifier, IDOrganisationVisibleTo)
WHERE IDOrganisationVisibleTo = IDOrganisation;

不支持WHERE子句中的表达式吗?

没有this is not supported.

语法只允许与常量进行比较

<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 | = | <> | != | > | >= | !> | < | <= | !< }

尽管如此,您可以创建具有此条件的索引视图。