Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Как да изтрия атрибут от XML променлива в sql сървър 2008?

Трябва да използвате С xmlnamespaces , в противен случай "/clue_personal_auto" не съответства на NAMESPACED clue_personal_auto xmlns="..." възел.

Не само това, всъщност не можете да премахнете пространство от имена, тъй като то не е нормален атрибут.

Пример за премахване на обикновен атрибут

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да използвате сортиране (Поръчайте по) в Select Statement в SQL Server - SQL Server / TSQL Урок, част 109

  2. Вижте какво прави sp_execute

  3. T-SQL:Избор на колона въз основа на MAX (друга колона)

  4. Как да завъртите няколко колони без агрегиране

  5. Псевдоним на кръстосана база данни на SQL Server