【发布时间】:2012-06-21 05:24:24
【问题描述】:
我在 SQL Server 2008 中声明了一个 NVARCHAR(MAX) 类型的列,它的确切最大字符长度是多少?
【问题讨论】:
标签: sql-server sql-server-2008 sql-server-2005
我在 SQL Server 2008 中声明了一个 NVARCHAR(MAX) 类型的列,它的确切最大字符长度是多少?
【问题讨论】:
标签: sql-server sql-server-2008 sql-server-2005
NVARCHAR(MAX) 类型的列的最大大小为 2 GB 存储空间。
因为NVARCHAR 每个字符使用 2 个字节,所以大约是。 10 亿个字符。
Leo Tolstoj 的战争与和平 是一本 1'440 页的书,包含大约 600'000 个字 - 所以可能是 600 万个字符 - 被四舍五入。因此,您可以在每个 NVARCHAR(MAX) 列中粘贴大约 166 份完整的战争与和平书。
足够的空间满足您的需求吗? :-)
【讨论】:
默认情况下,nvarchar(MAX) 值的存储方式与 nvarchar(4000) 值完全相同,除非实际长度超过 4000 个字符;在这种情况下,行内数据将替换为指向存储数据的一个或多个单独页面的指针。
如果您预计数据可能超过 4000 个字符,nvarchar(MAX) 绝对是推荐的选择。
【讨论】:
nvarchar [ ( n | max ) ]
可变长度的 Unicode 字符串数据。 n 定义字符串长度,可以是 1 到 4,000 之间的值。 max 表示最大存储大小为 2^31-1 字节(2 GB)。 存储大小(以字节为单位)是实际输入数据长度的两倍 + 2 个字节
【讨论】:
我认为实际上nvarchar(MAX) 可以存储大约 1070000000 个字符。
【讨论】: