1

是否存在这样的事情,或者您总是需要手动设置最大字段长度?

我们的数据库中有一个varchar字段,其中值的长度可以是从 0 一直到 800 或更大的任何值。是否有一种数据类型会自动将自身设置为输入值的长度?

4

1 回答 1

5

这专门用于 SQL Server - 但也应适用于大多数其他 RDBMS
您需要定义最大长度 - 但该varchar类型将始终只存储所需的数据。因此需要定义自动处理的最大值,而不是实际大小。

因此,如果您拥有varchar(800)并存储 50 个字符 - 它占用 52 个字节。如果存储 100 个字符 - 使用 102 个字节(每个条目 2 个字节开销)。

同时,我仍然认为您不应该定义所有列varchar(max)(最大 2 GB 大小)——即使它看起来很诱人也很方便。阅读再使用 VARCHAR(n) 有什么意义?很好地解释为什么不这样做。

于 2013-02-22T16:46:37.823 回答