自动设置为字段长度值的SQL数据类型

时间:2013-02-22 16:40:53

标签: sql types varchar

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

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

1 个答案:

答案 0 :(得分:4)

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

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

与此同时,我仍然认为你应该 NOT 只定义所有列varchar(max)(最大2 GB) - 尽管它看起来很诱人且方便。请阅读What's the Point of Using VARCHAR(n) Anymore?,了解为何不这样做。