2010-10-31 5 views
1

Ok, pas sûr si cela est possible de le faire ..Ajout d'un nombre de lignes unique à une instruction SQL 2008 "for xml path"?

J'ai une requête qui renvoie simplement les enregistrements simples de la base de données, mais formaté comme XML comme suit:

select name, address, dateCreated, flag 
from table 
where name = 'test' 
for xml path('row'), root('rows') 

ok, pas de problème et je reçois le XML comme souhaité:

<rows> 
    <row> 
    <name>jddjdjd</name> 
    <address>dkdkdkdkdkd</address> 
    .. and so on... 
    </row> 
</rows> 

MAIS QU'EST-CE qUE JE SUIS eSSAIE POUR eN SAVOIR EST

Si je peux avoir le retour de XML comme suit:

<rows> 
    <row id='@@rowcount'> 
    <name>jddjdjd</name> 
    <address>dkdkdkdkdkd</address> 
    .. and so on... 
    </row> 
</rows> 

Comme vous pouvez le voir, je pouvais vraiment faire avec le nœud de retour avec un attribut de dire @@ rowcount ou même un champ de l'instruction select (pas sûr si c'est possible !!)

Toute aide très appréciée !!! David.

Répondre

2

Vous pouvez créer un alias @@rowcount-'@id', comme:

declare @t table (name varchar(25)) 

insert @t (name) values ('jddjdjd') 

select @@rowcount as '@id' 
,  name 
from @t 
for xml path('row'), root('rows') 

Cette impression:

<rows> 
    <row id="1"> 
     <name>jddjdjd</name> 
    </row> 
</rows> 

Cependant, je ne suis pas sûr qu'il est clairement défini ce @@rowcount signifie au point où il se tourna dans un attribut.

+0

Salut merci !! wow c'était vraiment un DOH !! moment de mon côté .. J'ai oublié que vous pouvez simplement ajouter un alias sous la forme de xxx comme "@id" pour créer l'attribut. –

+0

Désolé en plus ... comme pour le @@ rowcount, il fallait juste fournir une séquence - j'utilise les grilles de données www.dhtmlx.com et il faut une sorte de séquence unique pour chaque ligne ... évidemment dans ce cas J'avais juste besoin d'une séquence en cours d'exécution, mais bien sûr, un disque d'enregistrement, etc. pourrait être utilisé. Merci beaucoup d'avoir répondu, très apprécié. –

Questions connexes