SQL Server文本数据类型Maxlength = 65,535?

cra*_*gmj 6 sql-server text types

我正在使用的软件使用文本字段来存储XML.从我在线搜索,text数据类型应该包含2 ^ 31 - 1个字符.目前,SQL Server每次都会以65,535个字符截断XML.我知道这是由SQL Server引起的,因为如果我直接在Management Studio中向列添加第65,536个字符,它会声明它不会更新,因为字符将被截断.

最大长度是65,535还是因为数据库是在早期版本的SQL Server(2000)中设计的,它使用遗留text数据类型而不是2005年的?

如果是这种情况,将TextSQL Server 2005中的数据类型更改为修复此问题?

SQL*_*ace 10

这是SSMS的限制,而不是文本字段的限制,但您应该使用varchar(max),因为文本已被弃用

替代文字

这也是一个快速测试

create table TestLen (bla text)

insert TestLen values (replicate(convert(varchar(max),'a'), 100000))

select datalength(bla)
from TestLen
Run Code Online (Sandbox Code Playgroud)

为我返回100000