我有一个错误
Column 'key' in table 'misc_info' is of a type that is invalid for use as a key column in an index.
其中键是 nvarchar(max)。快速谷歌搜索发现索引的最大长度是 450 个字符。然而,这并没有解释什么是解决方案。如何创建类似 Dictionary 的内容,其中键和值都是字符串,并且显然键必须是唯一的并且是单个的?我的sql语句是
create table [misc_info] (
[id] INTEGER PRIMARY KEY IDENTITY NOT NULL,
[key] nvarchar(max) UNIQUE NOT NULL,
[value] nvarchar(max) NOT NULL);
最佳答案
唯一约束每行不能超过 8000 字节,并且即使这样也只会使用前 900 字节,因此键的最安全的最大大小是:
create table [misc_info]
(
[id] INTEGER PRIMARY KEY IDENTITY NOT NULL,
[key] nvarchar(450) UNIQUE NOT NULL,
[value] nvarchar(max) NOT NULL
)
即 key 不能超过 450 个字符。如果您可以切换到 varchar
而不是 nvarchar
(例如,如果您不需要存储多个代码页的字符),那么字符数可能会增加到 900 个。
关于sql - 其类型不能用作索引中的键列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2863993/