我可以在 SQL Server 2016 中的具有函数或分析函数的列上创建索引吗?

Can I create index on a column with functions or analytical functions in SQL Server 2016?

我可以在具有函数或分析函数的列上创建索引吗?

我有一个 table ABC 列 XXX updateddatetime,YYY updatedusername。我正在尝试创建如下所示的索引

CREATE INDEX idx_Cname1
ON ABC(UPPER(updatedusername));

CREATE INDEX idx_Cdate1
ON ABC(YEAR(updateddatetime));

我刚收到一个错误

Incorrect syntax near '('

是否可以创建如上所示的索引。另外,我可以在具有 LEAD、LAG 等分析函数的列上创建索引吗,

提前致谢!

Specify Computed Columns in a Table

创建计算列

ALTER TABLE [t] ADD Cname1 AS ABC(UPPER(updatedusername))
ALTER TABLE [t] ADD Cdate1 AS ABC(YEAR(updateddatetime))

添加PERSISTED没有区别,索引仍然物化字段

创建索引后

CREATE INDEX idx_Cname1
ON [T] (Cname1);

CREATE INDEX idx_Cdate1
ON [T] (Cdate1);