Aracılığıyla paylaş


Tabloları (xml) değiştirme

alter table deyim destekler xml veri türü.Herhangi bir dize türü Örneğin, alter sütun için xml veri türü.Bu gibi durumlarda, içinde belgeleri bulunan Not sütun iyi biçimlendirilmiş olmalıdır.Ayrıca, sütunundan türünü değiştirmekte olduğunuz dize yazılı xml 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ürü sütun yazılı xml. untyped XML'denÖ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ı çalıştırmak AdventureWorks2008R2 veritabanı, çünkü xml şema koleksiyon, Production.ProductDescriptionSchemaCollection, bir parçası oluşturulan AdventureWorks2008R2 veritabanı.

Önceki örnekte, hepsinin saklanan sütun geçerliliği ve belirtilen derlemedeki xsd şemaları karşı yazmış.Belirtilen şema ile ilgili geçersiz bir veya daha fazla xml örnekleri sütun içeriyorsa, ALTER TABLE deyim başarısız olur ve siz kullanamaz değiştirmek sizin untyped xml sütuna yazılan xml.

Not

Değiştirme tablo büyük ise, bir xml türü sütun olabilir pahalı.Bu, çünkü her belgesi iyi biçimlendirilmiş için iade edilmesi gerekir ve yazılı xml için de doğrulanmış olması gerekir.

Yazılı xml hakkında daha fazla bilgi için bkz: Yazılı xml Untyped xml karşılaştırılması.

Ayrıca bkz.

Diğer Kaynaklar