从一列获取XML值并在另一列中更新它

时间:2015-09-26 03:22:29

标签: sql-server

我有一张如下表。需要从列MyXml中获取Fname值并在MyVal列中更新。是否可以不循环行?

enter image description here

1 个答案:

答案 0 :(得分:1)

DECLARE @test TABLE(MyXml xml, MyVal nvarchar(max))

INSERT INTO @test
Values(N'<Name>
            <Fname>A</Fname>
            <Lname>AAA</Lname>
        </Name>',''),
        (N'<Name>
            <Fname>B</Fname>
            <Lname>BBB</Lname>
        </Name>','')

UPDATE @test
SET
    MyVal = MyXml.value('(Name/Fname/.)[1]','nvarchar(max)')

SELECT *
FROM @test t