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'.
下面是我使用的语句。 RowIdentifier
和 IDOrganisationVisibleTo
是 CLUSTERED PRIMARY KEY
中的列
CREATE NONCLUSTERED INDEX IX_SRReferralIn_Filtered
ON dbo.SRReferralIn(RowIdentifier, IDOrganisationVisibleTo)
WHERE IDOrganisationVisibleTo = IDOrganisation;
不支持WHERE
子句中的表达式吗?
语法只允许与常量进行比较
<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 | = | <> | != | > | >= | !> | < | <= | !< }
尽管如此,您可以创建具有此条件的索引视图。
我希望尝试在 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'.
下面是我使用的语句。 RowIdentifier
和 IDOrganisationVisibleTo
是 CLUSTERED PRIMARY KEY
CREATE NONCLUSTERED INDEX IX_SRReferralIn_Filtered
ON dbo.SRReferralIn(RowIdentifier, IDOrganisationVisibleTo)
WHERE IDOrganisationVisibleTo = IDOrganisation;
不支持WHERE
子句中的表达式吗?
语法只允许与常量进行比较
<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 | = | <> | != | > | >= | !> | < | <= | !< }
尽管如此,您可以创建具有此条件的索引视图。