sql >> Base de Datos >  >> RDS >> Sqlserver

Elimine el nodo xml de la columna de la tabla de SQL Server 2008 r2 según el valor del atributo

Bueno, dado que su atributo XML id es el espacio de nombres XML con el prefijo p5 , también debe declarar y usar ese segundo espacio de nombres XML en su código:

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

Vea esa segunda definición de espacio de nombres XML para p5 ? Vea el uso de ese espacio de nombres XML en qn:FilterValue[@p5:Id=sql:variable("@lookupvalueId")] expresión?