기존 열을 XML 열로 변경

적용 대상:SQL ServerAzure SQL DatabaseAzure SQL Managed Instance

ALTER TABLE 문은 xml 데이터 형식을 지원합니다. 예를 들어 문자열 형식 열을 xml 데이터 형식으로 변경할 수 있습니다. 이러한 경우 열에 포함된 문서는 올바른 형식이어야 합니다. 또한 열의 형식을 문자열에서 형식화된 xml로 변경하는 경우 열의 문서는 지정된 XSD 스키마에 대해 유효성을 검사합니다.

CREATE TABLE T (Col1 int primary key, Col2 nvarchar(max));
GO
INSERT INTO T
  VALUES (1, '<Root><Product ProductID="1"/></Root>');
GO
ALTER TABLE T
  ALTER COLUMN Col2 xml;

xml 형식 열을 형식화되지 않은 XML에서 형식화된 XML로 변경할 수 있습니다. 예:

CREATE TABLE T (Col1 int primary key, Col2 xml);
GO
INSERT INTO T
  values (1, '<p1:ProductDescription ProductModelID="1"
xmlns:p1="https://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ProductModelDescription">
            </p1:ProductDescription>');
GO
-- Make it a typed xml column by specifying a schema collection.
ALTER TABLE T
  ALTER COLUMN Col2 xml (Production.ProductDescriptionSchemaCollection);

참고 항목

XML 스키마 컬렉션Production.ProductDescriptionSchemaCollection이 데이터베이스의 일부로 생성되므로 스크립트가 데이터베이스에 AdventureWorks2022 대해 AdventureWorks2022 실행됩니다.

이전 예제에서 열에 저장된 모든 인스턴스는 지정된 컬렉션의 XSD 스키마에 대해 유효성을 검사하고 입력합니다. 열에 지정된 스키마 ALTER TABLE 와 관련하여 잘못된 XML 인스턴스가 하나 이상 포함되어 있으면 문이 실패하고 형식화되지 않은 XML 열을 형식화된 XML로 변경할 수 없습니다.

참고 항목

테이블이 크면 xml 형식 열을 수정하는 데 비용이 많이 들 수 있습니다. 이는 각 문서가 올바른 형식인지 확인해야 하고 형식화된 XML의 경우 유효성을 검사해야 하기 때문입니다.

참고 항목