2012-01-14 2 views
0

SQL Server의 Xml 데이터 형식을 사용하여 xml을 저장하는 열이 있습니다. 또한, 내가 제거하려는 xml에서 단일 노드를 선택할 수있는 Xpath 쿼리가 있습니다. 그래서, 내 질문은 거기에있는 모든 XML 열을 제외하고 내가 제거 할 필요가있는 특정 특정 노드를 선택하는 것입니다? 제거 할 노드를 선택할 수는 있지만 나머지 XML에서 제거하고 나머지는 그대로 두는 방법을 찾을 수 없습니다. 누구든지 SQL Server Xml 함수를 사용하여이 작업을 수행하는 방법에 대한 지침을 제공 할 수 있다면 크게 감사하겠습니다.모두 선택 xml 하나의 특정 노드 제외 SQL Server

+0

코드를 표시하십시오. – Hogan

답변

1

당신은 이런 식으로 작업을 수행 할 수 있습니다

DECLARE @xml XML 
SELECT @xml = YourXmlField 
FROM YourTable 
WHERE ID = 1 

SET @xml.modify('delete /Root/A') 
SELECT @xml 

그래서, 노드 제거하기위한 적절한 XPath를 제공하는 XML 변수에 값을 넣어 노드를 삭제하는 수정 사용해야합니다.

+0

응답 해 주셔서 감사합니다! 나는 당신이 말한 것을 시도하고 나는이 오류를 가지고있다. XML 데이터 유형 메소드 'modify'의 부정확 한 사용. 이 컨텍스트에서는 비 뮤 테이타 메소드가 필요합니다. 다음은 오류를 생성하는 XQuery 코드 줄입니다. pXml.modify ('delete/variation/section/layout/area [@type = "Image"및 @mode = "logo"및 @previewimage, ".jpg")] ') –

+2

XML 변수를 사용하여 * exact * 접근 방식을 시도 했습니까? 잘못된 방식으로 '수정'을 사용하면 오류가 발생합니다 (예 : 당신이 그것을 SELECT에서 직접하려고한다면. UPDATE..SET.의 일부로 만 사용하거나 XML 변수에서 SET의 일부로 사용할 수 있습니다. – AdaTheDev

+0

멋지다! 당신 말이 맞아, 나는 그것을 select 문에서 사용했다. 나는 당신이 말한대로 수정했고 완벽하게 작동합니다! –