Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

So verwenden Sie die IF/ELSE-Anweisung zum Aktualisieren oder Erstellen eines neuen XML-Knoteneintrags in SQL

Versuchen Sie zuerst das Ankerelement zu löschen und dann das neue einzufügen. Es spielt keine Rolle, ob es für die Löschanweisung vorhanden ist oder nicht. Ich habe auch eine bessere Möglichkeit zum Erstellen Ihres neuen Ankerelements bereitgestellt. Es kümmert sich um die Erstellung von Entitäten für Zeichen wie & .

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