Modyfikowanie tabel (XML)
Instrukcja ALTER TABLE obsługuje xml typu danych.Na przykład można zmienić w dowolnej kolumna typu ciąg do xml typu danych.Należy zauważyć, że w tych przypadkach dokumentów znajdujących się kolumna muszą być foremne.Także jeśli zmieniasz typ kolumna z ciąg znaków wpisywanych XML, dokumenty kolumna są sprawdzane przy użyciu określonych schematów 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
GO
Można zmienić xml kolumna typu bez typu XML do wpisany XML.Na przykład:
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
Ostrzeżenie
Skrypt będzie uruchamiany przeciwko AdventureWorks2008R2 bazy danych, ponieważ kolekcja schematu XML Production.ProductDescriptionSchemaCollection, utworzonych jako część AdventureWorks2008R2 bazy danych.
W poprzednim przykładzie wszystkie wystąpienia przechowywane kolumna poprawności i wpisany przeciwko schematów XSD w określonej kolekcja.Jeśli kolumna zawiera jeden lub więcej wystąpień XML, które są nieprawidłowe w odniesieniu do określonego schematu ALTER TABLE Instrukcja nie powiedzie się i nie można zmienić bez typu kolumny XML do wpisywanych XML.
Ostrzeżenie
Jeśli tabela jest duża, modyfikowanie xml kolumna typu może być kosztowne.Jest tak, ponieważ każdy dokument musi być sprawdzona dla są dobrze uformowane i maszynowy XML muszą także zostać sprawdzone.
Więcej informacji o wpisywanych XML, zobacz XML wpisywanych w porównaniu do pliku XML bez typu.