如果我将 varchar 列定义为长度为 32 或 128,在 sql server 中会有所不同吗?
Addi
问问题
21241 次
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 回答