Tablolar (XML) değiştirme
ALTER tablo deyim destekleyen xml Veri Türü. Örneğin, herhangi bir dize türü sütun değiştirebilirsiniz xml Veri Türü. Bu gibi durumlarda, belgeler içindeki olduğunu not sütun iyi biçimlendirilmiş gerekir.Ayrıca, sütun türü için yazılan bir xml dizeden değiştiriyorsanız, sütun belgelerde belirtilen XSD şemalar karşı doğrulanır.
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
Değiştirebileceğiniz bir xml türlenmemiş XML'YE sütun türü için XML yazdınız. Örneğin:
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
Not
Komut dosyası karşı çalışır AdventureWorks Veritabanı, çünkü XML şema koleksiyon Production.ProductDescriptionSchemaCollection, bir parçası olarak oluşturulan AdventureWorks Veritabanı.
Önceki örnekte, sütunda depolanan tüm örneklerini geçerliliği ve XSD şemaları belirtilen derlemedeki karşı yazdınız.Belirtilen şema açısından, geçersiz XML örneği bir veya daha fazla sütun içeriyorsa, ALTER TABLE deyim başarısız olur ve yazılı XML'DE türlenmemiş, XML sütun değiştirmek mümkün olmayacak.
Not
Büyük bir tablo, değişiklik bir xml Tür sütun, pahalı olabilir. Bu, çünkü her belgenin iyi biçimlendirilmiş için denetlenmeli ve yazılı XML için de doğrulanması gerekir.
Klavyeyle yazılan bir XML hakkında daha fazla bilgi için bkz: Klavyeyle yazılan XML Untyped XML'YE karşılaştırılması.