Aracılığıyla paylaş


XML verisi yükleniyor

XML verileri aktarmakSQL Server 2000toSQL Server 2005orSQL Server 2008birkaç yolu.Örneğin:

  • [N] metin veya resim veri varsa sütun içinde birSQL Server 2000veritabanını daha yeni sürüm veritabanına tablo kullanarak alabilirsinizIntegration Services.Sütun türü için XML ALTER tablo deyimini kullanarak değiştirin.

  • , Toplu veri kopyalamaSQL Server 2000Kullanımıbcp ve ardından toplu kullanarak Kullanımıbcp inç kullanarak daha yeni sürüm veritabanına veri ekleme

  • İlişkili sütunlar veri varsa, birSQL Server 2000veritabanı, bir [n] metni sütun ve isteğe bağlı olarak, birincil anahtar sütunu için bir satır tanımlayıcısı ile yeni bir tablo oluşturmaAlmak için XML ile sunucuda oluşturulan XML Programlama istemci tarafı kullanın ve içine yazma[n]textsütun.Sonra bir sonraki sürüm veritabanına veri aktarmak için yukarıda açıklanan teknikleri kullanın.Doğrudan XML bir XML sütuna sonraki sürüm veritabanına yazmak isteyebilirsiniz.

Toplu XML verilerini yükleme

Toplu yükleme yeteneklerini kullanarak sunucu yükü XML verileri topluSQL Server, Kullanımıbcp. gibiOPENROWSET bir XML sütun dosyalarından veri yüklemek için izin verir.Aşağıdaki örnekte, bu noktayı gösterir.

Örnek: XML dosya yükleme

Bu örnekte, t tablosuna bir satır eklemek gösterilmiştirCLOB olarak C:\MyFile\xmlfile.xml dosyasından yüklenen XML sütununun değerini ve tamsayı sütun sağlanan değer 10.

INSERT INTO T
SELECT 10, xCol
FROM    (SELECT *    
    FROM OPENROWSET (BULK 'C:\MyFile\xmlfile.xml', SINGLE_CLOB) 
 AS xCol) AS R(xCol)

Metin kodlama

SQL Server Unicode (UTF-16), XML verileri depolar.Sunucudan alınan XML verileri kodlama UTF-16 gelir.Farklı bir kodlama istiyorsanız, alınan verilerin gerekli dönüşümü gerçekleştirmek zorunda.Bazı durumlarda, XML verilerini farklı bir kodlama içinde olabilir.Bu, veri yükleme sırasında dikkatli sahip.Örneğin:

  • XML metni ise Unicode (UCS-2, UTF-16), atayabilir, bir XML sütun, değişken veya parametre olmadan bir sorun.

  • Kodlama Unicode olmayan ve kaynak kod sayfasını nedeniyle kapalı, dize kod sayfasını veritabanında aynı veya yüklemek istediğiniz kod noktaları ile uyumlu olması gerekir.Gerekirse, COLLATE kullanın.Bu tür hiçbir sunucu kod sayfa varsa, doğru kodlama ile açık bir XML bildirim eklemeniz gerekir.

  • Açık bir kodlama kullanmak için kullanınvarbinary()kod sayfaları ile etkileşimi vardır ya kullanmak dize türü, uygun kod sayfa.Daha sonra verileri bir XML sütun, değişken veya parametre atayın.

Örnek: Bir kodlama açıkça belirtme

Varsayın, vcdoc, olarak depolanan bir XML belgesivarchar(max)yok bir açık XML bildirim.Aşağıdaki deyim, bir XML bildirim kodlama "iso8859-1", XML belgesinin birleştirir, sonucu çevirir eklervarbinary(max)böylece bayt gösterimi korunur ve sonra son çevirir, XML.Bu, XML işlemcisi verileri belirtilen kodlama "iso8859-1" ayrıştırmak ve dize değerleri ilgili UTF-16 temsilini oluşturmak sağlar.

SELECT CAST( 
CAST (('<?xml version="1.0" encoding="iso8859-1"?>'+ vcdoc) AS VARBINARY (MAX)) 
 AS XML)

Kodlama uyumsuzlukları dize

Yoksa, kopyalama ve yapıştırma XML olarak bir dize Query Editor penceresineSQL Server Management Studiokodlama [H] VARCHAR dize deneyimi, uyumsuzluklar.Bu, XML örnek kodlamayı bağlıdır.Çoğu durumda, XML bildirim kaldırmak isteyebilirsiniz.Örneğin:

<?xml version="1.0" encoding="UTF-8"?>
  <xsd:schema …

Sonra bir N Unicode örneği örnek XML yapmak eklemeniz gerekir.Örneğin:

-- Assign XML instance to a variable.
DECLARE @X XML
SET @X = N'…'
-- Insert XML instance into an xml type column.
INSERT INTO T VALUES (N'…')
-- Create an XML schema collection
CREATE XML SCHEMA COLLECTION XMLCOLL1 AS N'<xsd:schema … '

See Also

Concepts