J'ai une colonne dans une base de données SQL Server 2005 qui contient un XML stocké sous forme de chaîne. Au sein de ce XML est l'arborescence des éléments suivantsEn utilisant TSQL, les résultats XQuery renvoient> 1 ID que j'ai besoin de rechercher dans une requête
<DriverDetails>
<DriverDetail>
<ID>2334</ID>
<PRN>1</PRN>
</DriverDetail>
<DriverDetail>
<ID>2335</ID>
<PRN>2</PRN>
</DriverDetail>
<DriverDetail>
<ID>2336</ID>
<PRN>3</PRN>
</DriverDetail>
<DriverDetail>
<ID>2337</ID>
<PRN>4</PRN>
</DriverDetail>
</DriverDetails>
Je l'ai récupéré ce en utilisant:
CONVERT(xml, detailRiskInformation).query('
//DriverDetails
')
J'ai besoin d'interroger chaque ID dans chaque nœud DriverDetail pour voir si existe dans une autre table, appelée DriverDetails . La colonne appropriée est [DriverDetail]. [Id].
Maintenant, je peux courir XQuery comme ceci:
CONVERT(xml, detailRiskInformation).query('
for $i in //DriverDetail
return data($i)
')
Cependant, il retourne un seul résultat avec les 4 ID séparés par des espaces.
Comment puis-je effectuer une requête itérative sur chacun de ces ID dans une requête? Ou, sinon, comment puis-je les obtenir en utilisant un curseur ou quelque chose de beaucoup plus intelligent?
Merci à l'avance Ant
C'est exactement ce que je recherchais, merci. –
... Cela dit, je n'ai aucune idée de ce que ce T.c. malarkey est - avez-vous un lien vers une explication supplémentaire sur ce que je fais exactement? –
Jetez un oeil à http://msdn.microsoft.com/en-us/library/ms189887.aspx et http://msdn.microsoft.com/en-us/library/ms190798.aspx et http: // www .code-magazine.com/Article.aspx? quickid = 0605081 –