24 Stimmen

XML-Ausgabe wird in SQL abgeschnitten

Ich muss meine Ergebnismenge in XML zurückgeben und dies funktioniert gut, aber wenn die Anzahl der Datensätze erhöht werden, ist meine XML-Ausgabe truncated Hier ist meine Anfrage

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

Ich habe jedoch einige Optionen eingestellt, um die Ausgabeergebnismenge zu erhöhen.

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

aber ich bin immer noch nicht in der Lage, das gewünschte Ergebnis zu erzielen.

Bitte schlagen Sie mir eine Lösung vor

EDIT: Wenn ich jedoch auf die XML-Datei klicke, wird sie in einem anderen Abfragefenster geöffnet und alle XML-Dateien werden hier angezeigt, aber es werden nicht alle XML-Dateien zurückgegeben, sondern abgeschnittene XML-Dateien.

Danke....

65voto

user3791994 Punkte 651

Versuchen Sie das Folgende:

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

5voto

Axarydax Punkte 16025

Ich hatte das gleiche Problem mit Management Studio und xml-Ergebnissätzen. Ich habe dies gelöst, indem ich die Ausgabe programmatisch mit c#, mit SqlDataReader.

5voto

JohnH Punkte 71

Das hat bei mir funktioniert (SSMS 2012): Extras > Optionen > Abfrageergebnisse > SQL Server > Results to Grid: Maximum Characters Retried: XML-Daten: Unbegrenzt. Dann habe ich die Ergebnisse des Rasters in einer Datei gespeichert.

5voto

Vin Punkte 882

Ich hatte das gleiche Problem. Ich änderte meine Abfrageergebnis-Einstellung auf Unbegrenzt, aber es funktionierte nicht. Es gibt ein Workaround. Es ist nicht sehr schön, aber wenn Sie weiterhin SQL Server Management Studio verwenden und die Ergebnisse erhalten möchten. Tweak die Abfrage zu konvertieren die xml gespeichert mit:

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

Der vollständige Text wird zurückgegeben. Bitte beachten Sie, dass Sie am Ende einige Formatierungen vornehmen müssen

4voto

Tim Clauss Punkte 61

Ich dachte nur, ich füge der obigen Antwort einen kurzen Zusatz hinzu. Das Ändern der Einstellungen in SSMS 2017 Extras > Optionen > Abfrageergebnisse > SQL Server > Ergebnisse auf Raster funktioniert. Allerdings müssen Sie dann SSMS vollständig schließen und erneut öffnen, damit die Einstellung wirksam wird.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X