Compartilhar via


Modificando tabelas (XML)

A instrução ALTER TABLE oferece suporte ao tipo de dados xml. Por exemplo, é possível alterar qualquer coluna de tipo cadeia de caracteres para o tipo de dados xml. Observe que nesses casos os documentos contidos na coluna devem estar bem formados. Além disso, se você estiver alterando o tipo da coluna de cadeia de caracteres para tipo xml, os documentos da coluna serão validados em relação aos esquemas XSD especificados.

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

É possível alterar uma coluna de tipo xml de XML sem tipo para XML com tipo. Por exemplo:

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)
GO
ObservaçãoObservação

O script será executado no banco de dados AdventureWorks porque a coleção de esquema XML, Production.ProductDescriptionSchemaCollection, é criada como parte do banco de dados AdventureWorks.

No exemplo anterior, todas as instâncias armazenadas na coluna são validadas e classificadas nos esquemas XSD na coleção especificada. Se a coluna contiver uma ou mais instâncias XML inválidas em relação ao esquema especificado, haverá falha na instrução ALTER TABLE e você não poderá alterar a coluna de XML sem tipo para XML com tipo.

ObservaçãoObservação

Se uma tabela for grande, a modificação de uma coluna de tipo xml poderá ser dispendiosa. Isso ocorre porque a boa formação de cada documento deve ser verificada e o XML com tipo também deve ser validado.

Para obter mais informações sobre XML com tipo, consulte XML digitado comparado com XML não digitado.

Consulte também

Outros recursos