Share via


Ändern von Tabellen (XML)

Die ALTER TABLE-Anweisung unterstützt den xml-Datentyp. So können Sie z. B. eine beliebige Spalte vom Zeichenfolgentyp in den xml-Datentyp ändern. Beachten Sie, dass die in der Spalte enthaltenen Dokumente dazu wohlgeformt sein müssen. Außerdem werden beim Ändern des Spaltentyps vom Zeichenfolgentyp in den typisierten XML-Typ die Dokumente in der Spalte anhand der angegebenen XSD-Schemas überprüft.

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

Sie können eine nicht typisierte Spalte vom Typ xml in eine typisierte XML-Spalte ändern. Beispiel:

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
HinweisHinweis

Das Skript wird für die AdventureWorks2008R2-Datenbank ausgeführt, da die XML-Schemaauflistung Production.ProductDescriptionSchemaCollection als Teil der AdventureWorks2008R2-Datenbank erstellt wird.

Im vorherigen Beispiel werden alle in der Spalte gespeicherten Instanzen mit den XSD-Schemas der angegebenen Auflistung überprüft und typisiert. Wenn die Spalte eine oder mehrere in Bezug auf das angegebene Schema ungültige XML-Instanzen enthält, erzeugt die ALTER TABLE-Anweisung einen Fehler, d. h., Sie können die nicht typisierte XML-Spalte nicht in eine typisierte XML-Spalte ändern.

HinweisHinweis

Bei umfangreichen Tabellen kann das Ändern einer Spalte vom Typ xml äußerst aufwändig werden, da jedes Dokument auf Wohlgeformtheit überprüft und bei typisierten XML-Dokumenten auch eine Überprüfung durchgeführt werden muss.

Weitere Informationen zu typisiertem XML finden Sie unter Typisiertes XML im Vergleich zu nicht typisiertem XML.

Siehe auch

Andere Ressourcen