У мене є поле для зберігання деяких даних, поле оголошено як 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)
поле?
Використання: 64 біт SQL Server 2008 (10.50).