Partager via


Modification de tables (XML)

L'instruction ALTER TABLE prend en charge le type de données xml. Par exemple, vous pouvez modifier n'importe quelle colonne de type chaîne au type de données xml. Dans ces cas-là, les documents contenus dans la colonne doivent être corrects. En outre, si vous convertissez la colonne du type chaîne dans le type xml typé, les documents de la colonne sont validés par rapport aux schémas XSD spécifiés.

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

Vous pouvez convertir une colonne de type xml non typée en colonne XML typée. Exemple :

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

Notes

Le script sera exécuté sur la base de données AdventureWorks2008R2 car la collection de schémas XML, Production.ProductDescriptionSchemaCollection, est créée dans le cadre de la base de données AdventureWorks2008R2.

Dans l'exemple précédent, toutes les instances stockées dans la colonne sont validées et typées par rapport aux schémas XSD de la collection spécifiée. Si la colonne contient une ou plusieurs instances XML non valides au regard du schéma spécifié, l'instruction ALTER TABLE échoue et vous ne pouvez pas convertir la colonne XML non typée en colonne XML typée.

Notes

Si une table est volumineuse, la modification d'une colonne de type xml peut s'avérer coûteuse. En effet, le système doit vérifier que chaque document est correct et, s'il s'agit d'un document XML typé, il doit le valider.

Pour plus d'informations sur les données XML typées, consultez Comparaison du XML typé et du XML non typé.

Voir aussi

Autres ressources