nvarchar(max)长度测试:在使用convert强制类型转化之后 文本长度可以突破8000的上限。
并且nvarchar(max)的最大长度可达到2^31
以下为验证SQL:

Declare @A nvarchar(max)
set @A=replicate('*',9000);
print len(@A) set @A=replicate(CONVERT(nvarchar(max),'*'),9000);
print len(@A) set @A=replicate(CONVERT(nvarchar(max),'1'),POWER(2,26));
print len(@A) set @A=replicate(CONVERT(nvarchar(max),'2'),CAST( POWER(2,30) as bigint) *2);
print len(@A)

不过在表中max的长度就不会那么长了,一般限制就是4000/8000,具体数值估计是要依赖于SQLServer版本了。以下是一个例子:

create table a (

data nvarchar(max)

)

declare @a nvarchar(max)

set @a = REPLICATE('a', 8000) + 'b';

--delete from a

insert into a values(@a)

select * from a

实际上select回来的数据只有8000字符,b没有存到数据库中。

因此一旦要存储大于4000/8000的数据时最好还是不要依赖nvarchar(max),可以考虑ntext之类的。

发现:convert(nvarchar(2),'abcde')的操作是一个类型转化的过程,而不是数据存储的过程,所以就不存在空间大小不够导致的报错。
 而把‘abcde’插入到一个类型为nvarchar(2)的字段里时,就会提示截断字符串,因为建表时这个字段的长度就定义为只能存放2个unicode编码的长度,不论中英文。 空间不够,所以报错。

sql中nvarchar(max)长度测试的更多相关文章

  1. sql中NVARCHAR(MAX) 性能和占空间分析 varchar(n),nvarchar(n) 长度性能及所占空间分析

    varchar(n),nvarchar(n) 中的n怎么解释: nvarchar(n)最多能存n个字符,不区分中英文. varchar(n)最多能存n个字节,一个中文是两个字节. 所占空间: nvar ...

  2. 英文操作系统中中文乱码(SQL中 NVARCHAR 和 VARCHAR区别)

        varchar在SQL Server中是采用单字节来存储数据的,nvarchar是使用Unico来存储数据的.中文字符存储到SQL Server中会保存为两个字节(一般采用Unico编码),英 ...

  3. SQL 中nvarchar和varchar到底能存多少汉字和英文

    实践出真知,在SQL中,nvarchar(50)表示汉字和英文都是50,varchar(50)汉字25,英文50

  4. SQL中Len与DataLength区别

    SQL中求字符串长度问题 一.LEN(Param) 求字符串的长度 DataLength(param) 求字符串所占的字节长度 二.LEN不返回文本之后的空格长度 而DataLenth则不同 三.针对 ...

  5. SQL 2005中char、nchar、varchar、ntext and nvarchar(max)的区别

    原文地址 MS SQL大值数据类型varchar(max).nvarchar(max).varbinary(max) 在MS SQL2005及以上的版本中,加入大值数据类型(varchar(max). ...

  6. sql中varchar(n),nvarchar(n) 长度性能及所占空间分析

    sql中varchar(n),nvarchar(n) 长度性能及所占空间分析 1.varchar(n),nvarchar(n) 中的n怎么解释: nvarchar(n)最多能存n个字符,不区分中英文. ...

  7. Sql server中的 nvarchar(max) 到底有多大?(转载)

    问题: SQL server中的nvarchar(max)最大的长度是4000个字吗? 如果字段的内容超过4000个字时用什么类型呢?text 还是binary?他们的最大长度是多少?比如字段放的是长 ...

  8. SQL Server中VARCHAR(MAX)和NVARCHAR(MAX)使用时要注意的问题(转载)

    在Microsoft SQLServer2005及以上的版本中,对于varchar(n).nvarchar(n)和varbinary(n)有了max的扩展.可以使用如:varchar(max).nva ...

  9. NVARCHAR(MAX) 的最大长度

    本文使用的环境是SQL Server 2017, 主机是64位操作系统. 大家都知道,Micorosoft Docs对 max参数的定义是:max 指定最大的存储空间是2GB,该注释是不严谨的: nv ...

随机推荐

  1. Measuring Signal Similarities

    http://cn.mathworks.com/help/signal/examples/measuring-signal-similarities.html Open This Example   ...

  2. Python3学习

    要做一个儿童搜索引擎的项目(www.kidsearch.cn),所以开始接触各种新的语言,初步学了PHP爬虫,觉得要做大点的项目用PHP确实不太方便,中文兼容性就是一个比较棘手的问题.python的爬 ...

  3. PostgreSQL的 initdb 源代码分析之十

    继续分析, 如下这段,因为条件不成立,被跳过: /* Create transaction log symlink, if required */ ) { fprintf(stderr,"I ...

  4. Codeforces Round #332 (Div. 2) D. Spongebob and Squares 数学题枚举

    D. Spongebob and Squares Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/ ...

  5. UOJ #148. 【NOIP2015】跳石头 二分

    #148. [NOIP2015]跳石头 Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://uoj.ac/problem/148 Descripti ...

  6. Spark wordcount 编译错误 -- reduceByKey is not a member of RDD

    Attempting to run http://spark.apache.org/docs/latest/quick-start.html#a-standalone-app-in-scala fro ...

  7. oc-05-对象的创建

    // 11-[掌握]创建一个对象并访问成员变量 #import <Foundation/Foundation.h> //声明 @interface Person : NSObject//类 ...

  8. MYSQL 5.7 新增150多个新功能

    http://www.thecompletelistoffeatures.com/ There are over 150 new features in MySQL 5.7. The MySQL ma ...

  9. requestFileSystem is undefined

    使用phonegap 3时,用File API,不应该用cordova plugin add org.apache.cordova.file等添加File API Plugin. 要用: phoneg ...

  10. day02 Java基础

    1.Java中的关键字都是小写的. 2.Java中的关键字 3.Java中的注释分为:单行注释.多行注释.文档注释 文档注释将被javadoc工具解析生成一个说明书. 4.Java中的常量分为字面值常 ...