Ответ 1
У меня была такая же проблема с наборами студий управления и наборами результатов xml. Я решил это, получив программный выход с помощью С# с помощью SqlDataReader.
Мне нужно вернуть свой результирующий набор в 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
но все же я не могу получить желаемый результат.
предложите мое решение
EDIT: Однако, когда я нажимаю на XML, он открывается в другом окне запроса и показанном здесь всем xml, но он не возвращает весь xml вместо усеченного xml.
Спасибо....
У меня была такая же проблема с наборами студий управления и наборами результатов xml. Я решил это, получив программный выход с помощью С# с помощью SqlDataReader.
Попробуйте следующее:
Declare @xmldata xml
set @xmldata = (select ... From test for xml...)
select @xmldata as returnXml
Если ваш XML-результирующий набор по-прежнему усекается даже после изменения параметров SSMS, используйте утилиту SQLCMD с параметром XML ON до запуска вашего оператора XML. Направьте свой вывод в файл с помощью переключателя -o. SQLCMD - это утилита командной строки, которая очень проста в использовании. См. http://msdn.microsoft.com/en-us/library/ms162773.aspx.
Это сработало для меня (SSMS 2012): Инструменты > Параметры > Результаты запросa > SQL Server > Результаты для сетки: Максимальные символы Retried: Данные XML: Неограничен. Затем я сохранил результаты сетки в файл.
У меня была такая же проблема. Я изменяю параметр "Результат запроса" на "Неограниченно", но он не работал. Работает. Это не очень аккуратно, но если вы хотите продолжить использовать студию управления SQL Server и получить результаты. Измените запрос на преобразование xml, используя:
convert(xml,'<xml><![CDATA[' + cast(MyColumnWithXml as varchar(max)) + ']]></xml>')
Возвращается полный текст. Обратите внимание, что вам нужно будет сделать некоторое форматирование в конце.
Выход XML, который вы получаете в окне вывода запроса, на самом деле не предназначен для сохранения действительные документы XML. Вы можете получить действительный XML из SQL Server, когда вы захватить его как поток с использованием управляемых классов ADO или SQLXML в .NET
Однако вы можете ограничить размеры выходных данных запроса, используя В SQL Server Management Studio перейдите в Инструменты → Параметры → Результаты запроса → SQL Server → Результаты в текст → Максимальное количество символов, отображаемых в каждом столбце
Вы можете использовать SQL Management Studio 2008 для механизма базы данных SQL Server 2005. Если вы это сделаете, значения по умолчанию должны быть достаточно большими, но в Инструментах → Параметры → Результаты запроса → SQL Server отображаются результаты для сетки и результаты для текста node.
Результаты для Grid позволяют вам контролировать максимальный размер для данных XML явно, а максимальный размер по умолчанию - 2 МБ.
Если у вас нет лицензии на SSMS 2008, вы можете использовать экспресс-версию бесплатно здесь.