2013-02-22 118 views
1

这样的事情是否存在或您是否始终需要手动设置最大字段长度?自动设置为字段长度值的SQL数据类型

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

+0

nope没有这样的东西 – 2013-02-22 16:42:31

+0

哈哈好吧,谢谢:) – NealR 2013-02-22 16:45:27

+0

这就是为什么你不能声明一个'VARCHAR'而不指定它的大小。 – 2013-02-22 16:45:33

回答

4

这是专门为SQL Server - 但应该适用于大多数其他RDBMS以及
您需要定义最大长 - 但需要varchar类型将永远只能存储尽可能多的数据。所以需要定义最大值 - 但不是实际大小 - 这是自动处理的。

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

与此同时,我还是会说你应该只是定义了所有列varchar(max)(最大2 GB大小。) - 尽管它可能看起来很诱人,方便。请阅读What's the Point of Using VARCHAR(n) Anymore?了解为什么不这样做的一个很好的解释。

相关问题