J'ai une requête qui utilise Sélectionnez ...
de ...
Commandez par [Batchtype! 1! Typename], [FormType! 2! Typename], tag, parent
Pour XML Explicit, root ('ClientImages') P> Mais le nom du nom de colonne résultant est quelque chose comme cryptique que p> est-il un moyen de modifier le nom de la colonne? strong> P> [réponse] strong>
J'ai eu plusieurs autres pour xml exploit code> pour renvoyer le résultat XML. P>
avec code> des instructions code>, donc j'ai enregistré le résultat de la requête sans appliquer pour xml explicite code> dans une table TEMP @xmltable code> puis défini Le résultat explicite XML à un XML a ensuite renvoyé. P> declare @xmlResult xml
set @xmlResult =(
select *
from @xmlTable
for xml explicit, root('ClientImages'))
select @xmlResult as XmlResult
3 Réponses :
Non, il n'y a pas, autant que je sache. SQL Server Management Studio va autogénérer un tel nom pour votre XML.
Vous pourrez peut-être d'abord attribuer votre sortie à une variable XML, puis sélectionnez celle-ci pour obtenir un "Nice" Nom de colonne: P>
DECLARE @XmlResult XML SELECT @XmlResult = ...... FROM ....... SELECT @XmlResult
Au lieu de restructuration avec code>, je viens de mettre le résultat (sans appliquer pour xml exploit code>) dans une table temporelle, puis je l'ai simplement renvoyé sous forme XML de TEMP TABLE - Réponse mise à jour.
- Ajoutez une sélection (d'abord) et tapez (à la fin), et comme [quelque chose]
Si vous avez besoin d'espaces de noms dans votre fichier XML retourné:
WITH XMLNAMESPACES ('urn:http://YourNamespaceHere' as NS0)
SELECT ( ... ) AS XmlResult
Quelle version de SQL Server utilisez-vous ?? En 2005 et en hausse, il n'est certainement plus besoin de "pour xml explicite" - pour le chemin XML est beaucoup plus facile à utiliser et beaucoup mieux
@marc_s: J'ai une structure compliquée pour laquelle je ne pouvais pas représenter en utilisant le chemin XML.