Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.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 2008 为什么varchar(max)存储的数据不超过8000个字符_Sql Server 2008 - Fatal编程技术网

Sql server 2008 为什么varchar(max)存储的数据不超过8000个字符

Sql server 2008 为什么varchar(max)存储的数据不超过8000个字符,sql-server-2008,Sql Server 2008,我想存储一个超过8000个字符的字符串,所以我使用VARCHAR(MAX),因为它的限制是2gb 如果字符串小于或等于8000,请纠正我的错误Varchar(max)将数据存储在行内数据页中。如果字符串大于8000,则它开始将字符串存储在LOB_数据页中,指针存储在in_ROW_数据页中 下面的代码没有存储超过8000个字符的字符串 create table test(name varchar(max)) insert into test values(replicate('a',8001)

我想存储一个超过8000个字符的字符串,所以我使用VARCHAR(MAX),因为它的限制是2gb

如果字符串小于或等于8000,请纠正我的错误Varchar(max)将数据存储在行内数据页中。如果字符串大于8000,则它开始将字符串存储在LOB_数据页中,指针存储在in_ROW_数据页中

下面的代码没有存储超过8000个字符的字符串

create table test(name varchar(max))
insert into test
values(replicate('a',8001)

Select len(name) from test  
--这仍然会给我8000的长度,而不是8001。所以在这种情况下,varchar(max)和varchar(8000)之间没有区别


有人能告诉我我做错了什么,以及如何存储超过8000个字符的字符串吗

在插入数据之前,将数据截断为8000字节。要创建长度超过8000个字符的值,必须使用varchar(max)数据类型,而“a”的类型只是varchar

create table test(name varchar(max))
insert into test
values(replicate(CAST('a' AS varchar(MAX)), 100000));

select len(name) from test;

在插入数据之前,将数据截断为8000字节。要创建长度超过8000个字符的值,必须使用varchar(max)数据类型,而“a”的类型只是varchar

create table test(name varchar(max))
insert into test
values(replicate(CAST('a' AS varchar(MAX)), 100000));

select len(name) from test;

在插入数据之前,将数据截断为8000字节。要创建长度超过8000个字符的值,必须使用varchar(max)数据类型,而“a”的类型只是varchar

create table test(name varchar(max))
insert into test
values(replicate(CAST('a' AS varchar(MAX)), 100000));

select len(name) from test;

在插入数据之前,将数据截断为8000字节。要创建长度超过8000个字符的值,必须使用varchar(max)数据类型,而“a”的类型只是varchar

create table test(name varchar(max))
insert into test
values(replicate(CAST('a' AS varchar(MAX)), 100000));

select len(name) from test;

我希望这个链接能帮助你。我希望这个链接能帮助你。我希望这个链接能帮助你。我希望这个链接能帮助你。有一些偏执缺失(更正了这个)。你的答案是最好的,删除我的,投你的。有一些偏执缺失(更正此)。你的答案是最好的,删除我的,投你的。有一些偏执缺失(更正此)。你的答案是最好的,删除我的,投你的。有一些偏执缺失(更正此)。你的答案是最好的,删掉我的,投你的一票。