gpt4 book ai didi

sql-server - 为什么我不能对 nvarchar(max) 施加约束?

转载 作者:行者123 更新时间:2023-12-01 18:18:29 24 4
gpt4 key购买 nike

为什么我无法在 nvarchar(max) 列上创建约束? SQL Server 不允许我对其施加唯一约束。但是,它允许我在 nvarchar(100) 列上创建唯一约束。

这两列都是NOT NULL。是否有任何原因导致我无法向 nvarchar(max) 列添加约束?

最佳答案

nvarchar(max) 实际上是与 nvarchar(integer-length) 不同的数据类型。它的特征更像是已弃用的 text 数据类型。

如果nvarchar(max)值变得太大,例如text,它将存储在行外部(行被限制为最大 8000 字节)并且指向它的指针存储在行本身中。您无法有效地索引如此大的字段,并且数据可以存储在其他地方的事实进一步使搜索和扫描索引变得复杂。
唯一约束需要强制执行索引,因此 SQL Server 设计者决定禁止在其上创建唯一约束。

关于sql-server - 为什么我不能对 nvarchar(max) 施加约束?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1184490/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com