我有一个带有dateTime列的表,我想在其中放置一个过滤的索引.该指数将每周重建一次.每次重建时,我希望它包含两天及更新的行,基于此列.我可以创建这样的过滤索引吗?我尝试了各种方法,我得到语法错误.
例如,索引创建的以下Where子句不起作用:
WHERE (ReadTime > DateAdd(dd,-2,GetDate()))
Run Code Online (Sandbox Code Playgroud)
您不能通过getdate()直接引用来完成此操作.您需要动态SQL.
该CREATE INDEX语法只允许对一个恒定的比较.
CREATE [ UNIQUE ] [ CLUSTERED | NONCLUSTERED ] INDEX index_name
ON <object> ( column [ ASC | DESC ] [ ,...n ] )
[ INCLUDE ( column_name [ ,...n ] ) ]
[ WHERE <filter_predicate> ]
... /*Irrelevant grammar removed*/
<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 | = | <> | != | > | >= | !> | < | <= | !< }
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
730 次 |
| 最近记录: |