기존 열을 XML 열로 변경Change Existing Columns to XML Columns

ALTER TABLE 문은 xml 데이터 형식을 지원합니다.The ALTER TABLE statement supports the xml data type. 예를 들어 모든 문자열 유형 열을 xml 데이터 형식으로 변경할 수 있습니다.For example, you can alter any string type column to the xml data type. 이 경우 열에 포함된 문서는 올바른 형식이어야 합니다.Note that in these cases, the documents contained in the column must be well formed. 또한 열 유형을 문자열에서 형식화된 xml로 변경할 경우 지정된 XSD 스키마에 대해 열에 있는 문서의 유효성을 검사합니다.Also, if you are changing the type of the column from string to typed xml, the documents in the column are validated against the specified XSD schemas.

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  
GO  

xml 유형 열을 형식화되지 않은 XML에서 형식화된 XML로 변경할 수 있습니다.You can change an xml type column from untyped XML to typed XML. 예를 들어For example:

CREATE TABLE T (Col1 int primary key, Col2 xml)  
GO  
INSERT INTO T   
values (1, '<p1:ProductDescription ProductModelID="1"   
xmlns:p1="http://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)  
GO  
참고

XML 스키마 컬렉션인 AdventureWorks2012AdventureWorks2012Production.ProductDescriptionSchemaCollection데이터베이스의 일부로 생성되기 때문에 이 스크립트는 AdventureWorks2012AdventureWorks2012 데이터베이스에 대해 실행됩니다.The script will run against AdventureWorks2012AdventureWorks2012 database, because the XML schema collection, Production.ProductDescriptionSchemaCollection, is created as part of the AdventureWorks2012AdventureWorks2012 database.

이전 예에서는 지정된 컬렉션에 있는 XSD 스키마에 대해 열에 저장된 모든 인스턴스의 유효성을 검사하고 이러한 인스턴스를 형식화합니다.In the previous example, all the instances stored in the column are validated and typed against the XSD schemas in the specified collection. 지정한 스키마에 맞지 않는 XML 인스턴스가 열에 하나 이상 있을 경우 ALTER TABLE 문이 실패하고 형식화되지 않은 XML 열을 형식화된 XML로 변경할 수 없습니다.If the column contains one or more XML instances that are invalid with regard to the specified schema, the ALTER TABLE statement will fail and you will not be able to change your untyped XML column into typed XML.

참고

테이블이 클 경우 xml 유형 열을 수정하는 데 비용이 발생할 수 있습니다.If a table is large, modifying an xml type column can be costly. 각 문서의 형식이 형식화된 XML로서 알맞은지 검사하고 유효성을 검사해야 하기 때문입니다.This is because each document must be checked for being well formed and, for typed XML, must also be validated.

형식화된 XML에 대한 자세한 내용은 형식화된 XML과 형식화되지 않은 XML 비교를 참조하세요.For more information about typed XML, see Compare Typed XML to Untyped XML.