sqlserver 2005 xml 필드 의 읽 기와 쓰기 동작

3355 단어 sqlserver2005xml
1.xml 필드 를 만 들 고 표 xmlTest 에 필드 를 만 들 고 이름x,데이터 형식 을 xml 로 설정 합 니 다.2.xmlinsert into xmlTest 쓰기(x)values('item 11item 12')go 이렇게 다시 기록 삽입:insert into xmlTest(x)values('item 21item 22)3.조회 데이터 3.1 조회 필드 의 모든 데이터 selectx from xmlText 결 과 는 그림 과 같다.

3.2 루트 아래 의 첫 번 째 item 노드 select 조회x.query('root/item[1]')from xmlTest 결과:

3.3 루트 아래 의 첫 번 째 item 노드 의 값 select 조회x.value('(root/item)[1]','varchar(50)')from xmlTest 결과:

3.3 루트 아래 두 번 째 item 노드 의 attr 2 속성 치 select 조회x.value(root/item/@attr 2)[2],'varchar(50)')from xmlTest 결과:

3.4 조회 표 에 기 록 된 xml 필드 의 item 노드 값 은 모두 SELECT t2.c1.value(','varchar(20)')as itemsfrom xmlTestcross applyx.nodes('root/item')as t2(c1)결과:

3.5 조회 표 에 id=1 에 기 록 된 xml 의 모든 item 필드 의 attr 2 속성 값 SELECT t2.c1.value('@attr 2','varchar(20)')as attr2from xmlTestcross applyx.nodes('root/item') as t2(c1)where id='1'
결과:

3.6 조회 id 가 1 인 모든 노드 중 attr 1 속성 이 a1 인 첫 번 째 일치 노드 의 attr 2 속성 값
select _x.value('(root/item[@attr1="a1"]/@attr2)[1]','varchar(50)')from xmlTest where id='1'
결과:

3.7 다 중 표 조회
예 를 들 어 다른 table:t2 가 존재 합 니 다.필드 xmlid 관련 표 xmlTest,attr 1 관련 xmlTest 의x 필드 의 attr 1 속성 값 입 니 다.
조회 표 xmlTest 중 id='1'기록 중x 필드 내 item 노드 중 attr 1 이 표 t2 중 attr 1 필드 값 일 때 item 노드 중 attr 2 의 속성 값
select xmlTest._x.value('(root/item[@attr1=sql:column("t2.attr1")]/@attr2)[1]','varchar(50)') as attr2,t2.attr1from xmlTest join t2 on t2.xmlid=xmlTest.idwhere xmlTest.id='1'
4.수정 데이터 4.1 수정 표 의 id=1 에 기 록 된 첫 번 째 item 노드 값 UPDATE xmlTest setx.modify('replace value of (root/item/text())[1] with "xxxxx"')where id='1'
select _x.query('root/item[1]')as item1from xmlTest 결과:

4.2 수정 표 에 id=2 기 록 된 두 번 째 item 노드 의 attr 2 속성 값 UPDATE xmlTest setx.modify('replace value of (root/item/@attr2)[2] with "2222b"')where id='2'
select _x.query('root/item[2]')as item1from xmlTest 결과:

좋은 웹페이지 즐겨찾기