Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 字节形式的Varchar_Sql_Sql Server_Database Design - Fatal编程技术网

Sql 字节形式的Varchar

Sql 字节形式的Varchar,sql,sql-server,database-design,Sql,Sql Server,Database Design,在我们的一个项目中,我们的经理坚持使用字节形式的varchar,比如varchar(8)、varchar(16)、varchar(32)、varchar(64)等等 如果我们可以猜测大小,但我们可能不知道实际大小,那么这比使用varchar(10)、varchar(11)等更好吗?假设您想在表中存储产品代码。目前,您所拥有的所有产品代码都是5个字符或更少,但将来可能会发生变化。你不可能看到它超过10个,但谁知道呢 您可以将其创建为varchar(10),但如果您错了,那么在将来的某个时间点,您可

在我们的一个项目中,我们的经理坚持使用字节形式的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个字符”


因此,如果定义的长度至少满足您的预期需要,我认为定义的大小并不重要。

看看:包括重复的谢谢。谢谢John,我想我正在寻找更详细的性能比较和参考,上面的评论提供了这些。