Вывод XML усечен в SQL - PullRequest
       14

Вывод XML усечен в SQL

20 голосов
/ 30 апреля 2010

Мне нужно вернуть мой набор результатов в XML, и это отлично работает, но если количество записей увеличено, мой вывод xml будет truncated, вот мой запрос

select t.id,t.name,t.address from test FOR XML AUTO, ROOT('Response'), ELEMENTS

Однако я установил некоторую опцию для увеличения выходного набора результатов, например ..

Tools --> Options --> Query Results --> SQL Server --> Results to Text --> Maximum              
number of characters displayed in each column
Tools --> Options --> Results --> Maximum characters per column

но я все еще не могу получить желаемый результат.

пожалуйста, предложите мое решение

РЕДАКТИРОВАТЬ: Однако, когда я нажимаю на XML, он открывается в другом окне запроса и все xml, показанные здесь, но он не возвращает весь xml вместо усеченного xml.

Спасибо ....

Ответы [ 7 ]

55 голосов
/ 01 июля 2014

Попробуйте следующее:

Declare @xmldata xml
set @xmldata = (select ... From test for xml...)
select @xmldata as returnXml
6 голосов
/ 30 апреля 2010

У меня была такая же проблема с наборами результатов управления studio и xml.Я решил эту проблему, запрограммировав вывод с помощью c # и SqlDataReader.

4 голосов
/ 23 ноября 2015

У меня была такая же проблема. Я изменяю настройку результата запроса на Неограниченно, но это не сработало. Есть работа вокруг. Это не очень аккуратно, но если вы хотите продолжать использовать SQL Server Management studio и получить результаты. Настройте запрос для преобразования xml, сохраненного с помощью:

convert(xml,'<xml><![CDATA[' + cast(MyColumnWithXml as varchar(max)) + ']]></xml>') 

Полный текст возвращается. Пожалуйста, обратите внимание, что вам придется сделать некоторое форматирование в конце

2 голосов
/ 12 ноября 2014

Это сработало для меня (SSMS 2012): Инструменты> Параметры> Результаты запроса> SQL Server> Результаты в таблицу: Максимальное количество повторных попыток: Данные XML: Неограниченно. Затем я сохранил результаты сетки в файл.

1 голос
/ 18 октября 2011

Если ваш результирующий набор XML все еще усекается даже после изменения параметров SSMS, используйте утилиту SQLCMD с параметром: XML ON перед выполнением оператора XML. Направьте вывод в файл, используя ключ -o. SQLCMD - это утилита командной строки, которая очень проста в использовании. Смотри http://msdn.microsoft.com/en-us/library/ms162773.aspx.

0 голосов
/ 12 мая 2010

Вы можете использовать SQL Management Studio для 2008 против ядра базы данных SQL Server 2005. Если вы это сделаете, значения по умолчанию должны быть достаточно большими, но в Сервис -> Параметры -> Результаты запроса -> SQL Server есть узел Результаты в таблицу и Результаты в текст.

Results to Grid позволяет явно контролировать максимальный размер данных XML, а максимальный размер по умолчанию составляет 2 МБ.

Если у вас нет лицензии на SSMS 2008, вы можете бесплатно использовать экспресс-версию здесь .

0 голосов
/ 30 апреля 2010

Вывод XML, который вы получаете в окне вывода Query, на самом деле не предназначен для сохранения действительные документы XML. Вы можете получить действительный XML из SQL Server, когда вы захватить его как поток, используя управляемые классы ADO или SQLXML в .NET

Однако вы можете ограничить размеры вывода запроса, используя В SQL Server Management Studio выберите Инструменты >> Параметры >> Результаты запроса >> SQL Server >> Результаты в текст >> Максимальное количество символов, отображаемых в каждом столбце

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...