non-clustered index
中不允许在varchar(max)
的列上创建 sql server
。
那么,可以varchar
创建的最长non-clustered index
长度是多少?
答案 0 :(得分:3)
密钥列长度不应超过900字节,但使用sqlserver 2016 cu2,这是1700字节..
您可以包含所包含的最大列,但它们不应该是键列的一部分。
create table t1
(
col1 varchar(1700),
id varchar(max)
)
create index nc on t1(col1)
include (id)
只需添加,从SQLServer 2012,您还可以重建LOB类型的索引列,但不支持text,ntext和image ..
雷木思·鲁萨努(Remus Rusanu)有一篇很好的博客,说明2012年早期版本不支持在线索引重建操作的原因。
进一步阅读:
varchar(max) everywhere?
Online Index Operations for indexes containing LOB columns
答案 1 :(得分:1)
非聚集索引(2016年之前)的最大字节数为900:
https://docs.microsoft.com/en-us/sql/sql-server/maximum-capacity-specifications-for-sql-server
所以,给VARCHAR(900)一个去,让我们知道你是怎么过的。