La sortie XML est tronquée en SQL

j'ai besoin de retourner mon résultat défini en XML et cela fonctionne très bien, mais si le nombre d'enregistrements est augmenté, ma sortie xml est truncated voici ma requête

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

cependant j'ai mis une option pour augmenter le résultat de sortie comme..

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

mais je suis toujours incapable d'obtenir le résultat désiré.

s'il vous plaît suggérer ma solution

EDIT: cependant quand je clique sur le XML, il s'ouvre dans une autre fenêtre de requête et tout le xml montré ici, mais il ne retournez tout xml au lieu de xml tronqué.

Merci....

15
demandé sur Muhammad Akhtar 2010-04-30 10:17:27

7 réponses

j'ai eu le même problème avec les ensembles de résultats de gestion studio et xml. J'ai résolu ce problème en programmant la sortie avec c#, avec SqlDataReader.

6
répondu Axarydax 2010-04-30 06:21:22

Essayez le code suivant:

Declare @xmldata xml
set @xmldata = (select ... From test for xml...)
select @xmldata as returnXml
44
répondu user3791994 2014-06-30 23:09:10

j'ai eu le même problème. Je change mon paramètre de résultat de requête en illimité, mais cela n'a pas fonctionné. Il y a un travail autour de. Ce n'est pas très soigné, mais si vous voulez continuer à utiliser SQL Server Management studio et obtenir les résultats. Modifier la requête pour convertir le xml stocké en utilisant:

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

Le texte complet est retourné. Veuillez noter que vous aurez à faire une mise en forme à la fin

3
répondu Vin 2015-11-23 19:16:06

si votre ensemble de résultats XML est toujours tronqué même après avoir changé les Options SSMS, utilisez L'utilitaire SQLCMD avec L'option: XML ON avant d'exécuter votre énoncé XML. Dirigez votre sortie vers un fichier en utilisant le commutateur-O. SQLCMD est un utilitaire de ligne de commande très simple à utiliser. Voir http://msdn.microsoft.com/en-us/library/ms162773.aspx.

1
répondu 2011-10-18 17:49:09

cela a fonctionné pour moi (SSMS 2012): Outils > Options > résultats des requêtes > SQL Server > résultats à la grille: caractères maximums retrieved: XML data: Unlimited. Puis j'ai sauvegardé les résultats de la grille dans un fichier.

1
répondu JohnH 2014-11-12 16:51:09

la sortie XML que vous obtenez dans la fenêtre de sortie de requête n'est pas vraiment destinée à être sauvegardée documents XML valides. Vous pouvez obtenir le XML valide du serveur SQL quand vous capturez-le sous forme de flux en utilisant les classes gérées par ADO ou SQLXML dans .NET

cependant vous pouvez limiter les tailles de sortie des requêtes en utilisant Dans SQL Server Management Studio, cliquez sur Outils >> Options >> les Résultats de la Requête >> SQL Server >> Résultats de Texte >> nombre Maximum de caractères affichés dans chaque colonne

0
répondu Dinesh 2010-04-30 10:33:13

vous pouvez utiliser SQL Management Studio pour 2008 contre un moteur de base de données SQL Server 2005. Si vous faites cela, les valeurs par défaut devraient être suffisamment grandes, mais dans Outils -> Options -> Query Results -> SQL Server il y a un résultat à Grid et des résultats à text node.

Results to Grid vous permet de contrôler explicitement la taille maximale des données XML, et la taille maximale par défaut est de 2MB.

si vous n'avez pas de licence pour SSMS 2008, vous devriez pouvoir utiliser l'édition express gratuitement ici.

-1
répondu Emil Lerch 2010-05-12 06:43:53