MS SQL Server Management Studio는 GUI를 통해 XML 열의 항목을 직접 편집 / 교체 할 수 없습니다 (복사 / 붙여 넣기 등은 작동하지 않음).
XML 열에서 단일 항목을 바꾸는 가장 쉬운 옵션은 무엇입니까? XML 열 값에 UPDATE / REPLACE와 다른 것을 사용해야합니까?
답변
전체 XML 조각을 한 번에 교체해야하는 경우 다음과 같은 일반적인 업데이트를 수행 할 수 있습니다.
UPDATE yourTable
SET yourXML = '<yourNewValidXML/>'
WHERE rowId = 1
개별 특성 또는 요소를 편집해야하는 경우 SQL Server에서 XML 데이터 형식의 .modify 메서드를 사용하여 단일 값을 업데이트 할 수 있습니다. 시작하는 간단한 예는 다음과 같습니다.
DECLARE @t TABLE ( rowId INT IDENTITY PRIMARY KEY, yourXML XML )
INSERT INTO @t ( yourXML )
VALUES ( '<Users>
<User Name="Bob"></User>
<User Name="Mikhail"></User>
<User Name="John"></User>
<User Name="Sue"></User>
</Users>' )
SELECT 'before' s, DATALENGTH(yourXML) dl, yourXML
FROM @t
WHERE rowId = 1
-- Update one attribute
UPDATE @t
SET yourXML.modify('replace value of (Users/User/@Name[.="Bob"])[1] with "wBob"')
WHERE rowId = 1
SELECT 'after' s, DATALENGTH(yourXML) dl, yourXML
FROM @t
WHERE rowId = 1
도움이 더 필요한 경우 XML의 작은 샘플과 예상 결과를 게시하십시오.