sql >> データベース >  >> RDS >> Sqlserver

SQL Server 2008 テーブルの新しい値で Xml 属性を更新する

    あなたの質問の初期のバージョンから、あなたの XML は実際にはテーブルの異なる行にあるように見えます。その場合は、これを使用できます。

    update YourTable set
      XMLText.modify('replace value of (/Identification/@Age)[1] with "40"')
    where XMLText.value('(/Identification/@Age)[1]', 'int') = 30
    

    テーブル変数を使用した作業サンプル

    declare @T table(XMLText xml)
    
    insert into @T values('<Identification Name="John"  Family="Brown"   Age="30" />')
    insert into @T values('<Identification Name="Smith" Family="Johnson" Age="35" />') 
    insert into @T values('<Identification Name="Jessy" Family="Albert"  Age="60" />')
    insert into @T values('<Identification Name="Mike"  Family="Brown"   Age="23" />')
    insert into @T values('<Identification Name="Sarah" Family="Johnson" Age="30" />')
    
    update @T set
      XMLText.modify('replace value of (/Identification/@Age)[1] with "40"')
    where XMLText.value('(/Identification/@Age)[1]', 'int') = 30
    
    select *
    from @T 
    


    1. ミリ秒単位のCURRENT_TIMESTAMP

    2. Oracleテーブルにデータを挿入する最速の方法は何ですか?

    3. Docker Laravel Mysql:ドライバーが見つかりませんでした

    4. MySQLでSTRAIGHT_JOINを使用する場合