我在SQL Server 2008中声明了一个类型为NVARCHAR(MAX)的列,它的确切最大字符有MAX作为长度?
当前回答
默认情况下,nvarchar(MAX)值存储与nvarchar(4000)值完全相同,除非实际长度超过4000个字符;在这种情况下,行内数据被一个指向存储数据的一个或多个独立页面的指针所取代。
如果您预计数据可能超过4000个字符,那么nvarchar(MAX)绝对是推荐的选择。
来源:https://social.msdn.microsoft.com/forums/en us/databasedesign/thread/d5e0c6e5 - 8 e44 - 4 - ad5 - 9591 - 20 - dc0ac7a870/
其他回答
我认为实际上nvarchar(MAX)可以存储大约1070000000个字符。
来自MSDN文档
Nvarchar [(n | Max)] 可变长度的Unicode字符串数据。N定义了字符串长度,取值范围为1到4000。max表示最大存储空间为2^31-1字节(2gb)。 存储大小(以字节为单位)是实际输入数据长度的两倍+ 2字节
默认情况下,nvarchar(MAX)值存储与nvarchar(4000)值完全相同,除非实际长度超过4000个字符;在这种情况下,行内数据被一个指向存储数据的一个或多个独立页面的指针所取代。
如果您预计数据可能超过4000个字符,那么nvarchar(MAX)绝对是推荐的选择。
来源:https://social.msdn.microsoft.com/forums/en us/databasedesign/thread/d5e0c6e5 - 8 e44 - 4 - ad5 - 9591 - 20 - dc0ac7a870/
NVARCHAR(max)类型列的最大存储空间为2 GByte。
因为NVARCHAR每个字符使用2个字节,所以大约。10亿个字符。
列夫·托尔斯泰的《战争与和平》是一本1440页的书,包含大约60万字——所以可能有600万个字符——很完整。因此,你可以在每个NVARCHAR(MAX)专栏中放入大约166本《战争与和平》整本书。
那地方够你用吗?: -)
推荐文章
- 从现有模式生成表关系图(SQL Server)
- 我如何循环通过一组记录在SQL Server?
- 数据库和模式的区别
- 如何在SQL Server中一次更改多个列
- 外键约束可能导致循环或多条级联路径?
- 如何选择每一行的列值不是独特的
- nvarchar(max)非文本
- 在SQL Server 2008 R2中重命名数据库时出错
- 将数据复制到另一个表中
- 如何在SQL中选择表的最后一条记录?
- 修改列,添加默认约束
- 在存储过程中使用“SET XACT_ABORT ON”有什么好处?
- 如何检查SQL Server文本列是否为空?
- 如何创建一个SQL Server函数“连接”多行从一个子查询到一个单独的分隔字段?
- 在SQL中更新多个列