Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/81.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 Server Varchar(最大)或文本数据类型中允许的实字符数_Sql_Sql Server_Sql Server 2012 - Fatal编程技术网

SQL Server Varchar(最大)或文本数据类型中允许的实字符数

SQL Server Varchar(最大)或文本数据类型中允许的实字符数,sql,sql-server,sql-server-2012,Sql,Sql Server,Sql Server 2012,我需要知道使用Sql Server可以在varchar(max)或文本字段中输入的最大字符数。在第页中,我发现存储的最大字节数是2GB(2^31-1)。由于我假设,根据本页和我搜索过的其他页面,Unicode字符的大小为2字节,因此我得出结论,我必须将总字节大小除以Unicode字符大小,这不会给出整数结果。有什么我不及格的地方吗?为什么页面上说最大字符串长度是2^31-1而不是2^31?来自SQL Server 2012帮助: 可变长度、非Unicode字符串数据。指定字符串长度,可以是从1到

我需要知道使用Sql Server可以在varchar(max)或文本字段中输入的最大字符数。在第页中,我发现存储的最大字节数是2GB(2^31-1)。由于我假设,根据本页和我搜索过的其他页面,Unicode字符的大小为2字节,因此我得出结论,我必须将总字节大小除以Unicode字符大小,这不会给出整数结果。有什么我不及格的地方吗?为什么页面上说最大字符串长度是2^31-1而不是2^31?

来自SQL Server 2012帮助:

可变长度、非Unicode字符串数据。指定字符串长度,可以是从1到的值 8,000. MAX表示最大存储大小为2^31-1字节(2 GB)。存储大小为实际大小 输入的数据长度+2字节。varcharare char varyingor character的ISO同义词
变化的

我认为你把varchar(max)和nvarhar(max)搞混了。varchar(max)每个字符有一个字节,但没有详细说明它取决于所使用的字符编码。或者是的,罗布,我很困惑。Varchar是非Unicode的。我以为是Unicode。而xQbert,第一个链接非常有用。谢谢顺便说一下,答案是2^31-3个字符(对于varchar)。