Тип данных text SQL Server Maxlength = 65,535?

Программное обеспечение я работаю с использованием текстовое поле для хранения XML. От моих поисков онлайн, тип данных text, как предполагается, содержит 2^31 - 1 символ. В настоящее время SQL Server усекает XML в 65 535 символах каждый раз. Я знаю, что это вызывается SQL Server, потому что, если я добавляю 65,536-й символ к столбцу непосредственно в Studio управления, он указывает, что не обновит, потому что символы будут усеченными.

Макс. длина действительно 65,535, или мог это быть, потому что база данных была разработана в более ранней версии SQL Server (2000), и это использует наследие text тип данных вместо 2005?

Если это верно, будет изменение типа данных к Text в SQL Server 2005 устраняют эту проблему?

6
задан marc_s 10 July 2012 в 05:40
поделиться

4 ответа

, что является ограничением SSMS, а не текста поле, но вы должны использовать varchar (max), поскольку текст устарел

alt text

Вот также быстрый тест

create table TestLen (bla text)

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

select datalength(bla)
from TestLen

Возвращает 100000 для меня

10
ответ дан 10 December 2019 в 02:42
поделиться

Вам следует ознакомиться с

Поэтому я бы предпочел использовать тип данных, подходящий для использования. Не подбирать тип данных для использования в предыдущей версии.

0
ответ дан 10 December 2019 в 02:42
поделиться

Если вы можете преобразовать столбец, вы тоже можете это сделать, поскольку тип данных text будет удален в будущей версии SQL Server. См. Здесь .

Рекомендуется использовать varchar (MAX) или nvarchar (MAX) . В вашем случае вы также можете использовать тип данных XML , но это может связать вас с определенными механизмами базы данных (если это необходимо).

0
ответ дан 10 December 2019 в 02:42
поделиться

MSSQL 2000 должен разрешить до 2^31 - 1 символов (не юникод) в текстовом поле, что составляет более 2 миллиардов. Не знаю, что вызывает это ограничение, но вы можете попробовать использовать varchar(max) или nvarchar(max). Они хранят столько же символов, но позволяют также использовать функции T-SQL для обычных строк (такие как LEN, SUBSTRING, REPLACE, RTRIM,...).

0
ответ дан 10 December 2019 в 02:42
поделиться
Другие вопросы по тегам:

Похожие вопросы: