Sql server SQL server Varchar(最大值)和占用的空间

Sql server SQL server Varchar(最大值)和占用的空间,sql-server,sqldatatypes,varcharmax,Sql Server,Sqldatatypes,Varcharmax,如果varchar(max)用作数据类型,并且插入的数据小于完整分配,即仅200个字符,那么SQL Server将始终占用varchar(max)的全部空间,还是仅占用200个字符的空间 此外,哪种数据类型即使插入较少的数据也会占用最大的空间 是否有任何文件对此进行了说明?来自: char[(n)] 固定长度、非Unicode字符串数据。n定义字符串长度,必须是1到8000之间的值存储大小为n字节。char的ISO同义词是character varchar[(n|max)] 可变长度、非Unic

如果
varchar(max)
用作数据类型,并且插入的数据小于完整分配,即仅200个字符,那么SQL Server将始终占用
varchar(max)
的全部空间,还是仅占用200个字符的空间

此外,哪种数据类型即使插入较少的数据也会占用最大的空间

是否有任何文件对此进行了说明?

来自:

char[(n)]

固定长度、非Unicode字符串数据。n定义字符串长度,必须是1到8000之间的值存储大小为n字节。char的ISO同义词是character

varchar[(n|max)]

可变长度、非Unicode字符串数据。n定义字符串长度,可以是1到8000之间的值。max表示最大存储大小为2^31-1字节(2 GB)存储大小是输入的数据的实际长度+2字节。varchar的ISO同义词是char-varying或character-varying


因此,对于varchar,包括max-存储将取决于实际数据长度,而char始终是固定大小的,即使不使用整个空间。

仅对字符串使用
char
你知道它的长度是固定的。例如,如果您定义了一个域 其值限制为'T'和'F',您可能应该 那
字符[1]
。如果您正在存储美国社会保险号码,请 域
CHAR[9]
(或者
CHAR[11]
如果需要标点符号)

使用
VARCHAR
处理长度可能不同的字符串,例如名称、短字符串 描述等。当您不想担心时,请使用
VARCHAR
剥离尾随坯料。除非有充分的理由,否则使用
VARCHAR

不到。

varchar大小取决于数据的长度。所以在你的情况下,只需要200个字符就可以了-请不要这么学究气。希特勒只是为原来的问题增加了价值,他/她的答案肯定是相关的,我发现这很有帮助,而你/你的答案则不然。