Aracılığıyla paylaş


Giriş XML toplu yükleme (SQLXML 4.0)

XML Bulk yük uygulamasına semistructured XML verileri yüklenemedi olanak tanıyan bir tek başına COM nesnesidir SQL Server Tablolar.

XML verileri ekleyebileceğiniz bir SQL Server INSERT deyim ve; OPENXML işlevini kullanarak, veritabanı ancak çok miktarda XML verileri eklemek istediğinizde toplu yükleme yardımcı programı daha iyi performans sağlar.

The Execute yöntem of the XML toplu yükleme object model takes two parameters:

  • Bir açıklama eklenmiş XML şema tanımı (XSD) veya XML-Data Reduced (XDR) şema.XML toplu yükleme yardımcı programı, bu eşleştirme şemayı ve XML verilerini içine eklenecek olan SQL Server tablolarını tanımlamak, şemadaki belirtilen ek açıklamalar yorumlar.

  • XML belgesini veya belgeyi parçası (belgenin bir parçası, tek bir üst düzey öğe olmadan belgedir).Bir dosya adı ya da, XML toplu yükleme okuma akışı belirtilebilir.

XML toplu yükleme eşleme şemada yorumlayan ve tanımlayan tablo (s) içine eklenecek XML verileri olduğu.

Aşağıdakileri incelemeniz olduğunu kabul edilir SQL Server Özellikler:

XML veri akışı

Kaynak XML belgesi büyük olduğundan, tüm belge için toplu yükleme belleğe okunamaz işlem.Bunun yerine, XML toplu yükleme XML veri akışı olarak yorumlar ve dosyayı okur.Hizmet programı, verileri okur gibi veritabanı tanımlayan tablo (s) uygun kayıtlar, XML veri kaynağını oluşturur ve daha sonra için kayıt gönderir. SQL Server ekleme için.

Örneğin, aşağıdaki kaynak XML belgesi içerir. <Müşteri> öğeleri ve <Sipariş> Alt Öğeler:

<Customer ...>
    <Order.../>
    <Order .../>
     ...
</Customer>
...

As XML Bulk Load reads the <Customer> element, it generates a record for the Customertable.Zaman okuma </ Müşteri> bitiş etiketi tabloya kayıt XML toplu yükleme ekler SQL Server. In the same way, when it reads the <Order> element, XML Bulk Load generates a record for the Ordertable, and then inserts that record into the SQL Server table upon reading the </Order> end tag.

Işlem temelli ve Nontransacted XML Bulk yükleme işlemi

XML toplu yükleme ya da bir işlenen veya bir nontransacted modunda çalışabilir.Toplu yükleme nontransacted modunda olduğunda performans genellikle uygunudur: diğer bir deyişle, Transaction özellik küme YANLıŞ için) ve aşağıdaki koşullardan biri doğrudur:

  • Verileri toplu yüklü olduğu bir tablo, dizin ile boştur.

  • Tablolar, veri ve benzersiz dizinleri vardır.

Oluşabilir (kısmi Al karşın) bir şey toplu yükleme işleminde yanlış olursa, bir geri alma nontransacted yaklaşım garantilemez.Veritabanı boş olduğunda nontransacted toplu yükleme uygundur.Bu nedenle, hatalı çıkarsa, veritabanını temizlemek ve XML toplu yükleme yeniden başlatın.

Not

XML toplu yükleme nontransacted modunda, varsayılan bir iç işlem kullanır ve onu tamamlar.Zaman Transaction özellik TRUE olarak ayarlanmışsa, bu hareket yürütme XML toplu yükleme çağırmaz.

If the Transaction özellik is küme to TRUE, XML toplu yükleme creates temporary files, one for each tablo that is identified in the mapping schema. XML toplu yükleme, XML belgesini kaynak kayıtlarından önce bu geçici dosyaları depolar.Sonra bir Transact-SQL BULK INSERT deyim dosyalar bu kayıtları alır ve karşılık gelen bir tabloda saklar. Kullanarak, bu geçici dosyalar için konum belirtebilirsiniz TempFilePath Özellik. Emin olun SQL Server XML toplu yükleme ile kullanılan bir hesabın bu yol erişebilir. If the TempFilePath özellik is not specified, the default file yol that is specified in the TEMP environment variable is used to create the temporary files.

If the Transaction özellik is küme to FALSE (the default setting), XML toplu yükleme uses the OLE DB arabirim IRowsetFastLoad to toplu yükleme the data.

If the ConnectionString özellik sets the connection dize, and the Transaction özellik is küme to TRUE, XML toplu yükleme operates in its own transaction context. (Örneğin, XML toplu yükleme kendi bir hareket başlatır ve tamamlar veya uygun şekilde geri alır.)

If the ConnectionCommand özellik sets the connection with an existing connection object and the Transaction özellik is küme to TRUE, XML toplu yükleme does not issue a yürütme or ROLLBACK deyim in the durum of a success or a failure, respectively. Hata oluşursa, XML toplu yükleme uygun bir hata iletisi döndürür.Bir yürütme veya ROLLBACK deyim verilecek karar, istemcinin toplu yükleme başlatan bırakılır.XML toplu yükleme için kullanılan bağlantı nesnesi türünde olmalıdır ICommand veya bir ADO Komut nesnesi.

SQLXML 4. 0'de bir ConnectionObject kullanılamaz Transaction özellik küme için YANLıŞ. Nontransacted modu ile desteklenen bir ConnectionObject birden çok açık olanaksız olduğundan IRowsetFastLoad geçirilen oturum arabirimde.