SQL Server mode EXPLICIT
Je suis à l'aide de SQL Server 2008 et je suis en train de produire un xml personnalisé à l'aide de EXPLICIT
mode avec FOR XML
.
J'ai l'un de beaucoup de rapport ayant requête suivante
select
p.personid, p.firstname, a.P_City
from
tblPeople p with (nolock)
left outer join
tblAddresses a with (nolock) on p.personid = a.personid
where
p.personid = 120773
Je veux personne en tant que parent et l'adresse de l'enfant peuvent être multiples parce que les gens à l'adresse en avoir un pour beaucoup de relation.
J'ai écrit la requête suivante
select 1 as TAG,
null as parent,
p.personid as [person!1!personid],
p.FirstName as [person!1!firstname],
null as [addr!2!]
from tblPeople p with (nolock) where p.PersonID in (120773,117396)
union all
select 2,1,
p.PersonID, p.FirstName, a.P_City from tblAddresses a with(nolock), tblPeople p
where p.PersonID=a.PersonID and p.PersonID in (120773,117396)
for xml explicit
De sortie comme suit, il est cassé xml avec personne imbriquée il ya quelque chose de mal avec mon code pour vous.
<person personid="117396" firstname="David"/>
<person personid="120773" firstname="Doyle">
<addr>Mount Rainier</addr>
<addr>Annapolis</addr>
</person>
Peut quelques un s'il vous plaît, aidez-moi !!!
Vous devez vous connecter pour publier un commentaire.
Je vous recommande de le fossé
FOR XML EXPLICIT
et l'utilisationFOR XML PATH/ROOT
à la place.L'aide de cette requête ici:
vous obtiendrez cette sortie XML:
L'ajuster si nécessaire. Lire plus de détails sur
FOR XML PATH
sur MSDN.Pour une utilisation correcte de FOR XML EXPLICIT la COMMANDE PAR est fondamental.
Cochez cette