【发布时间】:2015-10-09 06:47:05
【问题描述】:
我想存储一个超过 8000 个字符的字符串,所以我使用了 VARCHAR(MAX),因为它的限制是 2gb。
如果我错了,请纠正我 Varchar(max) 如果字符串小于或等于 8000,则将数据存储在 IN_ROW_DATA 页面中。如果字符串大于 8000,则它开始将字符串存储在 LOB_DATA 页面中,并且指针为存储在 IN_ROW_DATA 页中。
我下面的代码没有存储超过 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 个字符的字符串。
【问题讨论】:
标签: sql-server-2008