在我们的一个项目中,我们的经理坚持以字节为单位使用 varchar,例如 varchar(8)、varchar(16)、varchar(32)、varchar(64) 等。
如果我们可以猜测大小,这是否比使用 varchar(10)、varchar(11) 等更好,尽管我们可能不知道实际大小?
在我们的一个项目中,我们的经理坚持以字节为单位使用 varchar,例如 varchar(8)、varchar(16)、varchar(32)、varchar(64) 等。
如果我们可以猜测大小,这是否比使用 varchar(10)、varchar(11) 等更好,尽管我们可能不知道实际大小?
假设您想在表格中存储产品代码。目前您拥有的所有产品代码都是 5 个字符或更少 - 但这可能会在未来发生变化。你永远看不到它超过 10,但谁知道呢?
您可以将其创建为 varchar(10),但如果您错了,那么在将来的某个时间点您可能不得不更改它。如果将其创建为 varchar(20),则问题不存在;
那么,您是否在浪费空间将其声明为 varchar(20) 而不是 varchar(10)?不,因为 SQL Server 将仅使用列包含的字符数(此时为 5):所有数据类型 varchar(n) 的真正含义是“最多 n 个字符的可变长度文本”。
因此,只要定义的长度至少与您可预见的需要一样多,我认为定义的大小到底是多少并不重要。