24 Stimmen

XML-Ausgabe wird in SQL abgeschnitten

Ich muss mein Ergebnisset in XML zurückgeben und das funktioniert gut, aber wenn die Anzahl der Datensätze erhöht wird, wird meine XML-Ausgabe abgeschnitten. Hier ist meine Abfrage

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

Ich habe jedoch einige Optionen gesetzt, um das Ausgabeergebnis zu erhöhen, wie...

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 trotzdem erhalte ich nicht mein gewünschtes Ergebnis.

Bitte schlagen Sie mir eine Lösung vor

EDIT: Wenn ich jedoch auf das XML klicke, öffnet es sich in einem anderen Abfragefenster und alle XMLs werden hier angezeigt, aber es gibt nicht das gesamte XML zurück, sondern abgeschnittenes XML.

Danke....

0 Stimmen

Stellen Sie sicher, dass Sie den SSMS Management Studio neu starten, damit diese Änderungen wirksam werden.

65voto

user3791994 Punkte 651

Versuchen Sie Folgendes:

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

2 Stimmen

Das hat mir ermöglicht, den XmlReader nicht verwenden zu müssen.

2 Stimmen

Diese Antwort hat bei mir sehr gut funktioniert und sollte als die Antwort markiert werden.

1 Stimmen

Funktioniert perfekt! Danke.

5voto

Axarydax Punkte 16025

Ich hatte das gleiche Problem mit dem Management Studio und XML-Ergebnissätzen. Ich habe dies gelöst, indem ich das Ergebnis programmgesteuert mit c# und SqlDataReader erhalten habe.

2 Stimmen

Wenn du ein Beispiel hinzufügst, gebe ich dir +1

5voto

JohnH Punkte 71

Dies hat für mich funktioniert (SSMS 2012): Tools > Options > Query Results > SQL Server > Ergebnisse in Raster: Maximale Zeichen abgerufen: XML-Daten: Unbegrenzt. Dann habe ich die Ergebnisse des Rasters in eine Datei gespeichert.

0 Stimmen

Die Antwort, die mir geholfen hat, aber wie von Tim Clauss erwähnt stackoverflow.com/a/66141674/10010199 muss man den SQL Server vollständig neu starten, damit die Änderung wirksam wird

5voto

Vin Punkte 882

Ich hatte dasselbe Problem. Ich habe meine Abfrageergebniseinstellung auf Unbegrenzt geändert, aber es hat nicht funktioniert. Es gibt einen Workaround. Es ist nicht sehr sauber, aber wenn Sie weiterhin den SQL Server Management Studio verwenden und die Ergebnisse erhalten möchten. Passen Sie die Abfrage an, um das gespeicherte XML zu konvertieren:

convert(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, ich füge eine schnelle Ergänzung zur obigen Antwort hinzu. Das Ändern der Einstellungen in SSMS 2017 Tools > Optionen > Abfrageergebnisse > SQL Server > Ergebnisse im Raster funktioniert. Sie müssen jedoch 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