2010-04-30 5 views
15

ho bisogno di tornare il mio risultato impostato in XML e questo funziona bene, ma se sono aumentati il ​​numero di record, il mio output XML è truncated qui è la mia domandaOutput XML viene troncato in SQL

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

Comunque io hanno creato un po 'di possibilità di aumentare il set di risultati di output come ..

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

, ma ancora non sono in grado di ottenere il mio risultato desiderato.

si prega di suggerire la mia soluzione

EDIT: Comunque quando si fa clic sul XML, aperto in un'altra finestra di query e tutto xml mostrato qui, ma non restituisce tutto xml invece di xml troncato.

Grazie ....

+0

Assicurarsi di riavviare SSMS Management Studio affinché queste modifiche abbiano effetto. –

risposta

6

che ho avuto lo stesso problema con lo studio e la gestione set di risultati XML. Ho risolto questo ottenendo l'output programmaticamente con C#, con SqlDataReader.

0

L'output XML che si ottiene nella finestra di output di Query non è realmente inteso per il salvataggio di documenti XML validi . È possibile ottenere XML valido da SQL Server quando si cattura come un flusso utilizzando le classi ADO o SQLXML gestiti in .NET

Tuttavia è possibile limitare le dimensioni di output query utilizzando In SQL Server Management Studio andare in Strumenti> > Opzioni >> Risultati della query >> SQL Server >> Risultati del testo >> Numero massimo di caratteri visualizzati in ogni colonna

-1

È possibile utilizzare SQL Management Studio per il 2008 con un motore di database SQL Server 2005. Se lo fai, i valori di default dovrebbero essere abbastanza grandi, ma in Strumenti -> Opzioni -> Risultati della query -> SQL Server è presente un nodo Risultati su griglia e risultati su testo.

Risultati in griglia consente di controllare la dimensione massima per i dati XML in modo esplicito e la dimensione massima predefinita è 2 MB.

Se non si dispone di una licenza per SSMS 2008, si dovrebbe essere in grado di utilizzare l'Express Edition gratuitamente here.

1

Se il set di risultati XML viene ancora troncato anche dopo aver modificato le Opzioni SSMS, utilizzare l'utilità SQLCMD con: opzione XML ON prima di eseguire l'istruzione XML. Indirizza il tuo output su un file usando l'opzione -o. SQLCMD è un'utilità della riga di comando che è molto semplice da usare. Vedi http://msdn.microsoft.com/en-us/library/ms162773.aspx.

+0

Potrebbe funzionare solo con MS SQL 2008 o versioni precedenti. MS SQL 2012 lo interromperà: https://connect.microsoft.com/SQLServer/feedback/details/786004/sqlcmd-with-xml-on-break-lines-on-large-output – Rod

37

provare quanto segue:

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

Questa dovrebbe essere la risposta accettata –

+2

Ciò mi ha permesso di evitare l'uso di XmlReader. – Edyn

+2

Questa risposta ha funzionato bene per me e dovrebbe essere contrassegnata come risposta. –

1

questo ha funzionato per me (SSMS 2012): Strumenti> Opzioni> Risultati query> SQL Server> Risultati a griglia: massimo di caratteri ritentata: dati XML: Unlimited. Quindi ho salvato i risultati della griglia in un file.

2

Ho avuto lo stesso problema. Modifico il mio parametro Query su Unlimited, ma non ha funzionato. C'è un lavoro in giro. Non è molto pulito, ma se si desidera continuare a utilizzare SQL Server Management Studio e ottenere i risultati. Modificare la query per convertire il file XML memorizzato utilizzando:

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

Il testo completo viene restituito.Si prega di notare che si dovrà fare un po 'di formattazione alla fine