当前位置: 代码迷 >> Sql Server >> 提示页的长度超过8086kb,该怎么解决
  详细解决方案

提示页的长度超过8086kb,该怎么解决

热度:241   发布时间:2016-04-27 14:03:47.0
提示页的长度超过8086kb
我再sql2005定义一个表
create table test
(tid int identity(1,1),
ttextn nvarchar(max),
ttext1 varchar(max),
text1 nvarchar(4000),
text2 varchar(8000)
)
创建成功,并且成功插入数据
查询每个字段里内容的长度
select len(ttextn) as lentext,len(ttext) as lentextn,len(text1) as lentext1,len(text2) as lentext2 from test

执行结果:
lentext lentext lentext1 lentext2
5212 10781 1039 7898
8344 NULL NULL NULL

问题:为什么没提示页的长度超过8060kb

------解决方案--------------------
为什么要提示呢
------解决方案--------------------
没有提示就说明没问题 放心好了 

------解决方案--------------------
因为你用了varchar,而非char类型. varchar是需要时分配空间,故实际数据没有超过8060时不报错.
SQL code
create table test(tid int identity(1,1),ttextn nvarchar(max),ttext1 varchar(max),text1 char(4000), -- 用char类型.text2 char(8000)  -- 用char类型.)-- 报错信息Msg 1701, Level 16, State 1, Line 4Creating or altering table 'test' failed because the minimum row size would be 12011, including 7 bytes of internal overhead. This exceeds the maximum allowable table row size of 8060 bytes.
  相关解决方案