256

我已经NVARCHAR(MAX)在 SQL Server 2008 中声明了一个类型列,它的最大字符数以 MAX 为长度是多少?

4

4 回答 4

529

类型列的最大大小为NVARCHAR(MAX)2 GB 的存储空间。

由于NVARCHAR每个字符使用 2 个字节,所以大约是。10 亿个字符。

列夫·托尔斯泰的《战争与和平》是一本 1'440 页的书,包含大约 600'000 个字——因此可能是 600 万个字符——四舍五入。因此,您可以在每列中粘贴大约 166 份整本《战争与和平》一书。NVARCHAR(MAX)

空间是否足以满足您的需求?:-)

于 2012-06-21T05:26:12.340 回答
79

默认情况下,nvarchar(MAX) 值的存储方式与 nvarchar(4000) 值的存储方式完全相同,除非实际长度超过 4000 个字符;在这种情况下,行内数据被一个指向一个或多个存储数据的单独页面的指针替换。

如果您预计数据可能超过 4000 个字符,nvarchar(MAX) 绝对是推荐的选择。

资料来源:https ://social.msdn.microsoft.com/Forums/en-US/databasedesign/thread/d5e0c6e5-8e44-4ad5-9591-20dc0ac7a870/

于 2012-06-21T05:28:10.923 回答
11

来自MSDN 文档

nvarchar [ ( n | max ) ]

可变长度的 Unicode 字符串数据。n定义字符串长度,可以是 1 到 4,000 之间的值。max表示最大存储大小为 2^31-1 字节(2 GB)。存储大小(以字节为单位)是输入数据实际长度的两倍 + 2 个字节

于 2012-06-21T13:22:29.373 回答
9

我认为实际上nvarchar(MAX)可以存储大约 1070000000 个字符。

于 2014-11-26T23:00:53.360 回答