Comment insérer des données xml en un nœud dans un autre xml à l'aide de XQuery?
J'ai deux variable xml dire @res, @étudiant dans une procédure stockée dans SQL server 2005.
@res contient
<Subject>English</Subject>
<Marks>67</Marks>
<Subject>Science</Subject>
<Marks>75</Marks>
@élève contient:
<Student>
<Name>XYZ</Name>
<Roll>15</Roll>
<Result />
<Attendance>50</Attendance>
</Student>
J'ai besoin d'insérer le code xml de @res dans le noeud Résultat dans @étudiant variable à l'aide de XQuery.
Comment pour le mettre en œuvre?
S'il vous plaît aider.
- Ajout d'un "hacky" chaîne d'analyse de la solution qui devrait fonctionner pour SQL Server 2005 - pas assez, mais il devrait fonctionner.
Vous devez vous connecter pour publier un commentaire.
Dans SQL Server 2008, il est assez facile:
Qui me donne de la sortie:
Malheureusement, la possibilité d'appeler
.modify()
et l'utilisation d'unsql:variable
dans l'instruction insert a été introduit avec SQL Server 2008 seulement, ne fonctionne pas dans SQL Server 2005.Je ne vois pas comment vous pourriez le faire dans SQL Server 2005, d'autres que de recourir retour à laide de la chaîne d'analyse et de remplacement:
Marc
Cela fonctionne dans SQL 2005 et est la plupart du temps d'une requête xquery solution:
Vous pouvez configurer votre @étudiant variable @final à ce point si vous avez besoin de le faire. Le nom de "test" pour le nœud était juste ce que j'ai choisi d'utiliser. Vous pouvez utiliser n'importe quel nom tant qu'il ne sera pas apparaître dans votre XML.
Vous fondamentalement juste jeter les deux chaînes de caractères XML ensemble, de sorte qu'ils sont tous deux disponibles à xquery à la fois.
Vous pouvez également essayer de revenir à des données relationnelles et de retour à xml; quelque chose comme:
Retourne:
Pas exactement à votre exemple, mais à proximité.