Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Comment utiliser l'instruction IF/ELSE pour mettre à jour ou créer une nouvelle entrée de nœud xml dans Sql

Essayez d'abord de supprimer l'élément d'ancrage, puis insérez le nouveau. Peu importe qu'il soit là ou non pour l'instruction de suppression. J'ai également fourni une meilleure façon de construire votre nouvel élément d'ancrage. Il s'occupe de créer des entités pour des caractères comme & .

-- Delete the anchor node from the XML
set @xml.modify('delete /root/StartOne/Value6/a');

-- Build the XML for the new anchor node
set @a = (
         select @locTitle as 'a/@title',
                @locUrl as 'a/@href',
                '_blank' as 'a/@target',
                @locTitle as 'a'
         for xml path(''), type
         );

-- Insert the new anchor node
set @xml.modify('insert sql:variable("@a") into (/root/StartOne/Value6)[1]');