2010-04-30 15 views
15

necesito devolver mi conjunto de resultados en XML y esto funciona bien, pero si se aumenta el número de registros, mi salida XML es truncated aquí está mi consultade salida XML se trunca en SQL

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

Sin embargo, me ha establecido alguna opción para aumentar el resultado de salida establecido como ...

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

pero todavía no obtengo el resultado deseado.

sugerir por favor mi solución

EDIT: Sin embargo, cuando hago clic en el XML, abierto en otra ventana de consulta y todos XML que se muestra aquí, pero no devuelve toda XML en lugar de XML truncada.

Gracias ....

+0

Asegúrese de reiniciar SSMS Management Studio para que estos cambios surtan efecto. –

Respuesta

6

que he tenido el mismo problema con el estudio de gestión y conjuntos de resultados XML. He resuelto esto obteniendo la salida programáticamente con C#, con SqlDataReader.

0

La salida XML que obtienes en la ventana de salida de consulta no está pensada para guardar documentos XML válidos. Puede obtener XML válido de SQL Server cuando capturar como una corriente el uso de clases ADO o SQLXML gestionados en .NET

Sin embargo, puede limitar el tamaño de salida de la consulta mediante el uso de En SQL Server Management Studio vaya a Herramientas> > Opciones >> Resultados de consulta >> SQL Server >> Resultados a texto >> Número máximo de caracteres mostrados en cada columna

-1

Puede utilizar SQL Management Studio para 2008 en un motor de base de datos SQL Server 2005. Si lo hace, los valores predeterminados deberían ser lo suficientemente grandes, pero en Herramientas -> Opciones -> Resultados de la consulta -> Servidor SQL, hay un nodo Resultados a la cuadrícula y Resultados al texto.

Los resultados en la cuadrícula le permiten controlar el tamaño máximo de los datos XML explícitamente, y el tamaño máximo predeterminado es de 2 MB.

Si no tiene una licencia para SSMS 2008, debería poder utilizar la edición express gratis here.

1

Si su conjunto de resultados XML todavía se está truncando, incluso después de cambiar las opciones de SSMS, utilice la utilidad SQLCMD con: opción XML ON antes de ejecutar su declaración XML. Dirige tu salida a un archivo usando el interruptor -o. SQLCMD es una utilidad de línea de comandos que es muy simple de usar. Ver http://msdn.microsoft.com/en-us/library/ms162773.aspx.

+0

podría funcionar solo con MS SQL 2008 o anterior. MS SQL 2012 lo cortará: https://connect.microsoft.com/SQLServer/feedback/details/786004/sqlcmd-with-xml-on-break-lines-on-large-output – Rod

37

intente lo siguiente:

Declare @xmldata xml 
set @xmldata = (select ... From test for xml...) 
select @xmldata as returnXml 
+11

Esta debería ser la respuesta aceptada –

+2

Esto me permitió evitar el uso de XmlReader. – Edyn

+2

Esta respuesta funcionó muy bien para mí y debe marcarse como la respuesta. –

1

Esto funcionó para mí (SSMS 2012): Herramientas> Opciones> Resultados de la consulta> SQL Server> Resultados a cuadrícula: Número máximo de caracteres: Retried datos XML: Ilimitado. Luego guardé los resultados de la grilla en un archivo.

2

Tuve el mismo problema. Cambio mi configuración de resultados de la consulta a Ilimitado, pero no funcionó. Hay un trabajo alrededor. No es muy claro, pero si desea continuar utilizando el estudio de SQL Server Management y obtener los resultados. Ajuste la consulta para convertir el xml almacenado mediante:

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

Se ha devuelto el texto completo.Tenga en cuenta que deberá realizar algún formateo al final

Cuestiones relacionadas