14

如果我将 varchar 列定义为长度为 32 或 128,在 sql server 中会有所不同吗?

4

3 回答 3

17

varchar是一个可变字符字段。这意味着它可以将文本数据保存到一定长度。varchar(32) 只能容纳 32 个字符,而 varchar(128) 可以容纳 128 个字符。如果我尝试在 varchar(3) 字段中输入“12345”;这是将要存储的数据:

“123”

“45”将被“截断”(丢失)。

在您知道某个字段最多只能是(或应该是)某个长度的情况下,它们非常有用。例如:邮政编码或州缩写。事实上,它们通常用于几乎所有类型的文本数据(例如姓名/地址/等等) - 但在这些情况下,您必须注意您提供的数字是要填充的数据类型的合理最大值那一栏。

但是,您在使用它们时也必须小心,只允许用户输入该字段将支持的最大字符数。否则,当它截断用户的输入时可能会造成混乱。

于 2008-10-07T06:48:06.193 回答
4

应该没有明显的区别,因为后端只会存储您插入该列的数据量。它不会像 char 列那样填充到字段的完整大小。

编辑:有关更多信息,此链接应该很有用。

于 2008-10-07T06:08:33.340 回答
4

它不应该。它只是定义了它可以容纳的最大长度,实际使用的长度取决于插入的数据。

于 2008-10-07T06:12:18.323 回答