Как получить полные данные из студии управления SQL для столбца ntext?

Я использую SQL Server 2005. В одной из таблиц у меня есть столбец "xmldefinition", который имеет тип ntext. Теперь данные в этом столбце очень большие и содержат весь текст xml.

например:- <root><something1>....</something1></root>

Я хочу получить всю строку из студии управления и скопировать ее снаружи в XML-файл, чтобы вручную просмотреть весь XML-файл. Но когда я запрашиваю этот столбец и копирую и вставляю данные в другой файл, содержимое разбивается посередине, и оно не завершено.

например:- <root><something1>........<somechar

Я считаю, что это будет скопировать только некоторые 8196 символов из данных XML в столбце. Итак, мой вопрос, как мне получить полные данные для этого столбца вручную. Однако я могу написать код C# для чтения этого столбца, но я хочу сделать это вручную в Management Studio. Любая идея, пожалуйста.

3 ответа

Решение

Почему бы не преобразовать данные из NText в XML в вашем операторе select? Затем вы получаете возможность открыть XML в отдельном окне в SSMS.

Техника экспорта, показанная в усечении SQL Server и ограничении 8192, сработала для меня. В заключение говорится:

Вы можете экспортировать данные в плоский файл, который не будет усечен. Сделать это:

  • Щелкните правой кнопкой мыши базу данных
  • Нажмите Задачи -> Экспорт данных
  • Выберите ваш источник данных (по умолчанию должно быть в порядке)
  • Выберите "Назначение плоского файла" в качестве типа назначения.
  • Выберите имя файла для вывода.
  • В поле "Указать копию таблицы или запрос" выберите "Написать запрос, чтобы указать данные для передачи"
  • Вставьте в ваш запрос

Остальные шаги должны быть самоочевидными. Это выведет файл в текст, и вы можете открыть его в своем любимом текстовом редакторе.

Единственный способ превышения этого лимита в целом - через XML. Для длинных столбцов varchar я обычно использую что-то вроде следующего (трюк с инструкцией обработки избегает < меняется на &lt; так далее.)

select object_definition(object_id('sysdatabases')) 
 as [processing-instruction(x)] FOR XML PATH 

Конечно, в вашем случае данные уже в формате XML, так что простое приведение должно работать!

Другие вопросы по тегам