2015-06-01 3 views
0

Я пытаюсь сохранить строку длиной 50478 символов в поле базы данных nvarchar (max). Согласно this link, он сообщает, что поле nvarchar (max) может хранить до 1 миллиарда символов, но когда я пытался хранить только 50478 символов, sql усекает их и не сохраняет полную строку.NVARCHAR (MAX) не вмещает 50478 символов

Как решить такую ​​проблему?

Считаете ли вы, что это просто проблема с печатью с студией управления сервером sql?

+1

Как вы знаете, она хранится только 50478 характер? Вы использовали 'print'? – ughai

+2

Что вы получаете, когда вы запрашиваете 'SELECT LENGTH (myField) как myFieldLength FROM myTable'? Он должен дать вам 50478. – Alexander

+2

Вы делаете 'SELECT ..' из SSMS? Если это так, обратите внимание, что выход будет усечен. Просмотрите параметры «Инструменты» в разделе «Результаты запроса», чтобы указать количество символов для каждого столбца. – StuartLC

ответ

0

Вам необходимо убедиться, что данные, вставленные в поле, отлиты как nvarchar, иначе вы не сможете достичь того, что ищете.

Возьмите это в качестве примера:

Create table #temp (this nvarchar(max)) 

insert into #temp values (REPLICATE(cast('a' as nvarchar(max)), 50478)) 

Select this, Len(this) from #temp 

drop table #temp 

Также можно посмотреть на SQL Fiddle здесь: http://sqlfiddle.com/#!6/551f7/2/0

Смежные вопросы