У меня есть поле для хранения некоторых данных, поле объявлено как varchar(max)
. Насколько я понимаю, это должно быть сохранение 2^31 - 1
символов, но когда я ввожу некоторый контент более 8000 символов, он отключает все остальное.
Я проверил, что все данные включены в мою инструкцию по обновлению, и запрос везде выглядит нормально, но когда я выбираю данные обратно, они обрезаются.
Данные усекаются при их отображении на моем веб-сайте, а также при использовании SSMS для select content from table
.
select DATALENGTH (content) from table
возвращается как 8000.
Я установил данные с помощью этого: update table set content = 'my long content' where id = 1
. В контенте много HTML, но я не вижу в этом проблем. Единственное , что я могу видеть , что я делаю, заменяя все "
с , ''
как это введенное пользователем содержимое (не помню , почему я сделал это сейчас).
Мне удалось заставить контент вводиться правильно, удалив все одинарные кавычки в контенте, поэтому я думаю, что что-то странное происходит с моими данными, а не с базой данных.
Должен ли я делать что-то особенное с запросом, чтобы использовать varchar(max)
поле?
Использование: SQL Server 2008 (10.50) 64 бит.
источник