sql >> Databasteknik >  >> RDS >> Sqlserver

Ta bort xml-nod från SQL Server 2008 r2-tabellkolumnen baserat på attributvärde

Tja, eftersom ditt XML-attribut id är XML-namnrymden med prefixet p5 måste du också deklarera och använda det andra XML-namnområdet i din kod:

declare @lookupvalueId varchar(50)
declare @ruleId varchar(50)

set @lookupvalueId = 'b897f3ac-b40f-4b96-b438-eb156a26457e'
set @ruleId = 'fc39f423-05c0-4de9-ae46-12fe3c0c279b'

;WITH XMLNAMESPACES ('urn:gjensidige:processguide:201201' as qn,
                     'urn:gjensidige:processguide:201201' as p5)
update 
    pdr_processdefinitionrule
set 
    PDR_RuleXml.modify('delete (/qn:DifficultyRule/qn:FromControls/qn:Control/qn:FilterValues/qn:FilterValue[@p5:Id=sql:variable("@lookupvalueId")])')
where 
    pdr_guid = @ruleId

Se den andra XML-namnutrymmesdefinitionen för p5 ? Se hur XML-namnutrymmet används i qn:FilterValue[@p5:Id=sql:variable("@lookupvalueId")] uttryck?




  1. Hur man sammanfogar strängar i PostgreSQL

  2. Använd LIMIT för att paginera resultat i MySQL-fråga

  3. if-sats med sträng som innehåller villkoret

  4. Returnera JSON-svar från en MySQL-fråga