Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Come utilizzare l'istruzione IF/ELSE per aggiornare o creare una nuova voce del nodo xml in Sql

Prova a eliminare prima l'elemento di ancoraggio e poi inserisci quello nuovo. Non importa se è presente o meno per l'istruzione delete. Ho anche fornito un modo migliore per costruire il tuo nuovo elemento di ancoraggio. Si occupa della creazione di entità per caratteri come & .

-- 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]');