在sql server中,如果我将varchar列定义为长度为32或128,会有所不同吗?
答案 0 :(得分:12)
varchar是一个可变字符字段。这意味着它可以将文本数据保存到一定长度。 varchar(32)只能容纳32个字符,而varchar(128)可以容纳128个字符。如果我试图将“12345”输入到varchar(3)字段中;这是将要存储的数据:
“123”
“45”将被“截断”(丢失)。
在您知道某个字段仅为(或仅应该)最多一定长度的情况下,它们非常有用。例如:邮政编码或州名缩写。事实上,它们通常用于几乎所有类型的文本数据(例如名称/地址/等等) - 但在这些情况下,您必须小心,您提供的数字对于将填充的数据类型来说是理智的最大值那一栏。
但是,使用它们时也必须小心,只允许用户输入字段支持的最大字符数。否则,当它截断用户的输入时,可能会造成混淆。
答案 1 :(得分:4)
应该没有明显的区别,因为后端只会存储您插入该列的数据量。它没有填充到字段的完整大小,就像使用char列一样。
编辑:有关详细信息,此link应该很有用。
答案 2 :(得分:4)
不应该。它只定义了它可以容纳的最大长度,实际使用的长度取决于插入的数据。