3
속성 값을 가진 모든 요소에서 속성의 값을 변경하기 위해 modify() 문을 작성하는 것이 행운이지만 지금까지는 첫 번째로 일치하는 요소의 값만 변경할 수 있습니다. 피닉스 카디널스의 첫 번째 인스턴스 만 변경되었습니다 -이 아래의 결과를 제공 실행* all * 일치하는 요소의 속성 값을 XQuery로 바꾸는 방법은 무엇입니까?
DECLARE @x XML
SELECT @x = '
<FootballApparel>
<Item Team="Phoenix Cardinals" Type="Hat" Cost="$14.99" />
<Item Team="Indianapolis Colts" Type="Hat" Cost="$14.99" />
<Item Team="Cincinnati Bengals" Type="Hat" Cost="$14.99" />
<Item Team="Phoenix Cardinals" Type="Shirt" Cost="$21.99" />
<Item Team="Indianapolis Colts" Type="Shirt" Cost="$21.99" />
<Item Team="Cincinnati Bengals" Type="Shirt" Cost="$21.99" />
</FootballApparel>
';
SET @x.modify('
replace value of
(/FootballApparel/Item[@Team="Phoenix Cardinals"]/@Team)[1]
with "Arizona Cardinals"
');
SELECT @x;
: 나는 SQL Server 2005에서 실행하는거야 내가 지금까지 무엇을의 아래 예를 만들었습니다.
<FootballApparel>
<Item Team="Arizona Cardinals" Type="Hat" Cost="$14.99" />
<Item Team="Indianapolis Colts" Type="Hat" Cost="$14.99" />
<Item Team="Cincinnati Bengals" Type="Hat" Cost="$14.99" />
<Item Team="Phoenix Cardinals" Type="Shirt" Cost="$21.99" />
<Item Team="Indianapolis Colts" Type="Shirt" Cost="$21.99" />
<Item Team="Cincinnati Bengals" Type="Shirt" Cost="$21.99" />
</FootballApparel>
모든 인스턴스를 바꾸려면 올바른 modify() 문을 사용하여 도와 주실 수 있습니까?
감사합니다.
케빈
안녕하세요 마크, 데이터베이스의 여러 노드를 업데이트해야합니다. 하나의 xml 문을 사용할 수 있습니까? 또는 모든 노드에 대해 위에서 설명한 문을 작성해야합니까? – Radhi
@ Radi : 단일 XPath 문에서 XML의 모든 노드를 선택할 수 있습니까? 그렇다면 단일 작업으로 업데이트 할 수 있습니다. 그렇지 않으면 여러 "수정"작업이 필요합니다. –