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ção |
---|
O script será executado no banco de dados AdventureWorks2008R2 porque a coleção de esquema XML, Production.ProductDescriptionSchemaCollection, é criada como parte do banco de dados AdventureWorks2008R2. |
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çã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.