sql 备注的一列 长度定义 nvarchar(max)合适吗? 数据库是怎么分配空间的?

2025-12-06 15:02:18
推荐回答(3个)
回答1:

没问题,varchar和nvarchar是不定长的,数据库会根据存放的实际字节分配长度的,不会直接分配4000字节。除了存放英文字母的时候会占用两个字节,有点浪费。
char和nchar是定长的,不够的部分会自动补齐,分配指定字节长度的空间

回答2:

nvarchar(N) 里面的N 取值范围是1-4000 也就是最大值是 4000 你这么写不行

回答3:

nvarchar

用来定义可变长度的二进制数据,最大长度为4000个字符。nvarchar数据类型的定义形式为:

nvarchar[(n)]

其中,n表示所有字符占有的存储空间,以字节为单位。n必须是一个介于1~4000之间的数据。若输入的数据过长,SQL将会截掉其超出部分。
nvarchar与nchar的区别和varchar与char的区别类似。

例如,如果定义表列为nvarchar(20),那么存储在该列的数据最多可以长达20个字节。但是,在每列数据没有达到20个字节时,并不会在多余的字节上填充空格。

说明:当存储在列中数据的值的大小经常变化时,使用nvarchar数据类型可以有效地节省空间。