tsql: convertir des colonnes dans une colonne xml, xml par ligne

Exemple de ce que j'ai:

table: (col1 int, col2 int)

les données de l'échantillon (les données réelles ne seront pas connus au moment de l'exécution):

1,1
2,2
3,3
4,4

Résultat attendu: une seule colonne (xml)

et 4 lignes

row1: <cols><col1>1</col1><col2>1</col2></cols>
row2: <cols><col1>2</col1><col2>2</col2></cols>
row3: <cols><col1>3</col1><col2>3</col2></cols>
row4: <cols><col1>4</col1><col2>4</col2></cols>

Désolé les gars le modérateur ne voulez pas que le "bruit de réponses" à être supprimé. J'espère qu'il pourra comprendre, je suis d'aider ces pauvres gars si personne ne peut les voir ils ont complètement manqué le point. J'ai été la protection de leur réputation ...

Ici est une façon de réaliser ce que je veux. Mais ce n'est pas une bonne façon parce que le xml est construit à la main et n'est pas correctement encodés.

declare @colsList nvarchar(max)
set @colsList = ''
select @colsList = @colsList + '+ ''<' + COLUMN_NAME + '>'' + Isnull(cast( [' + COLUMN_NAME + '] as nvarchar(max)),'''') + ''</' + COLUMN_NAME + '>'' ' 
from INFORMATION_SCHEMA.COLUMNS 
where TABLE_NAME = 'SampleTable';

select @colsList = stuff(@colsList,1,1,'');
exec('select colsValues=cast(' + @colsList + ' as xml) from SampleTable');
  • Softion, veuillez arrêter d'essayer de supprimer les réponses, parce qu'ils "totalement à côté de la question". Au lieu de cela, de clarifier ce que vous êtes en train de demander, soit dans votre question ou un commentaire à leur réponse.
  • J'ai clarifié la question avant de le supprimer. Je supprime donc aucun autre utilisateur ne pourrait être perturbé par des réponses qui ne sont pas pour cette question particulière.
  • -1 pour mettre -1 pour une mauvaise raison. Où pensez-vous que vous êtes. À l'école ? C'est ma question et je le gère comme je veux.
InformationsquelleAutor Softlion | 2011-02-11