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....
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.
Essayez le code suivant:
Declare @xmldata xml
set @xmldata = (select ... From test for xml...)
select @xmldata as returnXml
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
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.
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.
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
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.