小编gee*_*eek的帖子

在“CREATE UNIQUE INDEX”的“WHERE”子句中使用“LEN”函数

我有这张桌子:

CREATE TABLE Table01 (column01 nvarchar(100));
Run Code Online (Sandbox Code Playgroud)

我想用这个条件LEN(column01) >= 5column01上创建一个唯一索引

我试过:

CREATE UNIQUE INDEX UIX_01 ON Table01(column01) WHERE LEN(column01) >= 5;
Run Code Online (Sandbox Code Playgroud)

我有:

表 'Table01' 上过滤索引 'UIX_01' 的 WHERE 子句不正确。

和 :

ALTER TABLE Table01 ADD column01_length AS (LEN(column01));
CREATE UNIQUE INDEX UIX_01 ON Table01(column01) WHERE column01_length >= 5;
Run Code Online (Sandbox Code Playgroud)

产生:

无法在表 'Table01' 上创建过滤索引 'UIX_01',因为过滤器表达式中的列 'column01_length' 是计算列。重写过滤器表达式,使其不包含此列。

sql-server sql-server-2008-r2 filtered-index

12
推荐指数
2
解决办法
3055
查看次数