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

Sletning af flere noder i Single XQuery til SQL Server

Selvom sletningen er lidt akavet at gøre på denne måde, kan du i stedet lave en opdatering for at ændre dataene, forudsat at dine data er enkle (såsom det eksempel, du gav). Følgende forespørgsel vil grundlæggende opdele de to XML-strenge i tabeller, forbinde dem, ekskludere de ikke-nul (matchende) værdier og konvertere det tilbage til XML:

UPDATE @table 
SET [column] = (
    SELECT p.i.value('.','int') AS c
    FROM [column].nodes('//i') AS p(i)
    OUTER APPLY (
        SELECT x.i.value('.','bigint') AS i
        FROM @parameter.nodes('//i') AS x(i)
        WHERE p.i.value('.','bigint') = x.i.value('.','int')
    ) a
    WHERE a.i IS NULL
    FOR XML PATH(''), TYPE
)


  1. Opdatering af enhedsrammemodel

  2. Atomisk indstillet SERIE-værdi, når transaktionen udføres

  3. kan jeg stole på, at mysql_insert_id() returnerer korrekt værdi, multithreading-paranoia

  4. Mysql join giver duplikerede rækker