sql >> Databasteknik >  >> RDS >> Sqlserver

Hur tar man bort ett attribut från en XML-variabel i sql server 2008?

Du måste använda MED xmlnamespaces , annars matchar inte "/clue_personal_auto" NAMESPACED clue_personal_auto xmlns="..." nod.

Inte bara det, du kan faktiskt inte ta bort ett namnområde eftersom det inte är ett normalt attribut.

Exempel på att ta bort ett vanligt attribut

declare @xml table (xmlid int, xmldocument xml)
insert @xml select 357, '
<clue_personal_auto xmlns="http://cp.com/rules/client" otherattrib="x">
  <admin>
     <receipt_date>03/16/2011</receipt_date>
     <date_request_ordered>03/16/2011</date_request_ordered>
     <report_usage>Personal</report_usage>
  </admin>
</clue_personal_auto>'

;WITH XMLNAMESPACES ('http://cp.com/rules/client' as ns)
UPDATE @XML
SET XmlDocument.modify('delete  (/ns:clue_personal_auto/@otherattrib)[1]')
WHERE xmlid = 357

select * from @xml


  1. Byt namn på tabell med mellanslag mysql

  2. Hur pg_sleep() fungerar i PostgreSQL

  3. Jag utför n nr. av processer där n är kan vara mellan 5 - 50. Varje process gör flera dml-operationer på postgres

  4. Hur infogar man arabiska tecken i SQL-databasen?