2009-03-26 5 views
3

Таким образом, у меня есть хранимая процедура в базе данных SQLServer 2005, которая извлекает данные из таблицы, форматирует данные в виде строки и помещает их в выходную переменную varchar (max).Почему максимальная длина varchar меньше 8000 байт?

Однако я заметил, что хотя len (s) сообщает, что строка должна быть> 8000, фактическая строка, которую я получаю (через окно вывода SQLServer), всегда усекается до < 8000 байт.

Кто-нибудь знает, каковы могут быть причины этого? Большое спасибо.

+0

Я думаю, что Sql Server Management Studio имеет ограничение длины столбца вывода, возможно, вы можете настроить это. – JSC

+0

Да, это настраивается в разделе «Инструменты-> Параметры-> Результаты запросов-> SQL-сервер». Посмотрите как на «Результаты на сетку», так и на «Результаты на текст» –

ответ

7

Окно вывода само по себе усекает ваши данные. Сама переменная содержит данные, но в окне отображаются только первые X символов.

Если вы хотите прочитать эту выходную переменную, например, из приложения .NET, вы увидите полное значение.

+0

Это определенно, что происходит - я знаю, что Management Studio обрезает в какой-то момент, не обязательно точно длина. –

5

Вы говорите в SQL Server Management Studio? Если да, есть некоторые опции для управления количеством возвращаемых символов (у меня только 2008 передо мной, но настройки находятся в разделе «Инструменты | Параметры | Результаты запроса» | SQL Server | Результаты для сетки | Максимальные символы, полученные и результаты в текст |.. Максимальное количество символов, отображаемых в каждом столбце

0

данные все есть, но студия управления не отображает все данные

в подобных случаях я использовал MS Access для ссылки таблицу и прочитать данные. Печально, что вам нужно использовать Access для просмотра данных вместо Management Studio или Query Analyzer, но это похоже на случай.

0

Однако я заметил, что хотя l en (s) сообщает, что строка должна быть> 8 000

Я тоже попал в проблему SQL Studio :), но не является максимальной длиной 8000 байт или 8000 байт, для nvarchar (unicode).

Любой шанс тип данных столбца фактически текст или NTEXT и вы конвертируете в VARCHAR?

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