Question

Nous avons juste passé à les synonymes de stuff serveur lié, et a remarqué que notre sortie XML ne figure plus correcte. Lors du retour des résultats XML à partir d'un point de vue, on pourrait créer un alias de la vue et qui serait désigné comme le nom de l'élément. Avec synonymes, cependant, il semble ignorer l'alias? Nous sommes encore principalement sur SQL 2005 - ce bug ne semble pas se produire sur notre exemple 2008. Est-ce un problème connu, et des idées pour contournements?

Par exemple, voici ce que nous avons utilisé pour être en mesure de le faire:

select top 3 number from Numbers as elementname for xml auto

<elementname number="0"/><elementname number="1"/><elementname number="2"/>

Et voici ce qui se passe avec un synonyme:

select top 3 number from Numbers_synonym as elementname for xml auto 

<dbo.Numbers number="0"/><dbo.Numbers number="1"/><dbo.Numbers number="2"/>

Comme vous pouvez le voir, SQL Server semble utiliser le nom de l'objet référencé réelle au lieu de l'alias. Cela devient pire pour les requêtes serveur croix, parce que vous obtenez le nom de quatre parties au lieu de Nice alias. (Par exemple: <rick_server.rick_database.dbo.Numbers number="0"/> ...)

Était-ce utile?

La solution

Parfois FOR XML AUTO fait la « mauvaise chose » - vous pouvez contrôler le nom de l'élément XML si vous utilisez le plus bavard très légèrement:

SELECT TOP 3 number
FROM Numbers_synonym
FOR XML PATH('elementname'), TYPE
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top