안녕하세요!
C#/ 닷넷 개발자입니다.
컬럼 속성이 xml 인 컬럼이 있습니다.
하고자 하는 것은 기존에 있는 xml의 특정 노드의 값이 중복되는 것이 있는지 체크하려고 합니다.
실질적으로는 xml에 시리얼 넘버가 포함 되어 있는데 이 시리얼 넘버에 중복값이 있으면 안됩니다~
그래서 특정 값이 추가되면 그 값의 xml 컬럼 시리얼 넘버 노드를 확인해서 중복값체크를 하려하는 것입니다.
그리고 해당 노드를 삭제하려고 합니다.
어떤 식으로 접근해야 할까요?
생각보다 xml 컨트롤 하는게 쉽지가 않네요~
Comment 1
-
우욱
2013.05.31 16:56
use tempdb;goCREATE TABLE xtbl (idcol INT IDENTITY,xcol XML);INSERT INTO xtbl( xcol )VALUES( N'<r><a id="b1">1</a><a id="b2">2</a></r>' ), ( N'<r><a id="b3">3</a><a id="b4">3</a></r>' );-- 수정 전 확인SELECT *FROM xtbl;UPDATE xtblSET xcol =xcol.query(N'<r>{for $x in (/r/a)returnif( $x is (/r/a)[. = $x][1]) then$xelse ()}</r>');-- 수정 후 확인SELECT *FROM xtbl;DROP TABLE xtbl;