列的数据类型不能参与列存储索引

ale*_*mia 7 t-sql sql-server columnstore

我想使用以下查询在表中创建聚集列存储索引:

CREATE CLUSTERED COLUMNSTORE INDEX cci
ON agl_20180319_bck
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

消息 35343,级别 16,状态 1,第 6 行 语句失败。列“memberOf”的数据类型不能参与列存储索引。省略列“memberOf”。

“memberOf”采用以下格式:memberOf(nvarchar(max)).

如何克服/忽略这个错误,它是什么意思?

Rig*_*iri 8

根据文档

列存储索引中不能包含使用以下任何数据类型的列:

nvarchar(max)、varchar(max) 和 varbinary(max)(适用于 SQL Server 2016 及更早版本以及非聚集列存储索引)

要么更改列的类型(如果可以),要么在此特定列上没有列存储索引。

  • 不,这意味着您根本无法在该列上创建列存储索引。您可以尝试将类型从 nvarchar(max) 更改为限制它,例如将长度设置为 4000。然后您可以在其上创建列存储索引。 (4认同)