Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Şunlar için geçerlidir:SQL Server
Azure SQL Veritabanı
XML Toplu Yükleme, Microsoft SQL Server tablolarına yarı yapılandırılmış XML verilerini yüklemenizi sağlayan bağımsız bir COM nesnedir.
INSERT ifadesi ve OPENXML fonksiyonunu kullanarak SQL Server veritabanına XML verisi ekleyebilirsiniz; ancak Toplu Yükleme aracı, büyük miktarda XML veri eklemeniz gerektiğinde daha iyi performans sağlar.
XML Toplu Yükleme nesne modelinin Execute yöntemi iki parametre alır:
Açıklamalı XML Şema Tanımı (XSD) veya XML-Data İndirgençlenmiş (XDR) şeması. XML Toplu Yükleme aracı, bu eşleme şemasını ve şemada belirtilen açıklamaları, XML verisinin ekleneceği SQL Server tablolarını tanımlamak için yorumlar.
Bir XML belgesi veya belge parçası (bir belge parçası, tek bir üst düzey öğesi olmayan bir belgedir). XML Toplu Yükleme'nin okuyabileceği bir dosya adı veya akış belirtilebilir.
XML Toplu Yük, eşleme şemasını yorumlar ve XML verilerinin yerleştirileceği tablo(lar)ı belirler.
Aşağıdaki SQL Server özelliklerine aşina olduğunuz varsayılmaktadır:
Açıklamalı XSD ve XDR şemaları. Açıklamalı XSD şemaları hakkında daha fazla bilgi için Açıklamalı XSD Şemalarına Giriş (SQLXML 4.0) bölümüne bakınız. Açıklamalı XDR şemaları hakkında bilgi için Annotated XDR Schemas (SQLXML 4.0'da kullanımdan kaldırılmıştır) sayfasına bakınız.
SQL Server toplu ekleme mekanizmaları, örneğin Transact-SQL BULK INSERT ifadesi ve bcp aracı. Daha fazla bilgi için BULK INSERT (Transact-SQL) ve bcp Utility'ye bakınız.
XML Veri Akışı
Kaynak XML belgesi büyük olabildiğinden, tüm belge toplu yük işleme için belleğe okunmaz. Bunun yerine, XML Toplu Yük XML verisini bir akış olarak yorumlar ve okur. Yardımcı veri okurken, veritabanı tablolarını tanımlar, XML veri kaynağından uygun kayıt(lar)ı oluşturur ve ardından kayd(lar)ı SQL Server'a göndererek eklemek ister.
Örneğin, aşağıdaki kaynak XML belgesi Müşteri> öğeleri ve Order alt öğelerinden< oluşur:><
<Customer ...>
<Order.../>
<Order .../>
...
</Customer>
...
XML Toplu Yükleme Müşteri> öğesini< okurken, Customertable için bir kayıt oluşturur. /Customer son etiketi okuduğunda<, XML Bulk Load bu kaydı SQL Server'daki tabloya ekler.> Aynı şekilde, Order> öğesini okuduğunda<, XML Toplu Yükleme Ordertable için bir kayıt oluşturur ve /Order> son etiketi okuduktan< sonra bu kaydı SQL Server tablosuna ekler.
İşlem Yapılan ve İşlemsiz XML Toplu Yükleme İşlemleri
XML Toplu Yük, işlem edilen veya işlem yapılmayan modda çalışabilir. Performans genellikle işlem yapılmayan bir modda toplu yükleme yapıyorsanız optimaldir: yani İşlem özelliği YANLIŞ olarak ayarlanmış) ve aşağıdaki koşullardan biri geçerlidir:
Verilerin toplu yüklendiği tablolar boş ve indekssizdir.
Tablolarda veri ve benzersiz indeksler bulunur.
İşlemsiz yaklaşım, toplu yükleme sürecinde bir sorun giderse geri alınma garantisi oluşturmaz (ancak kısmi geri alma işlemleri olabilir). İşlem yapılmayan toplu yük, veritabanı boş olduğunda uygundur. Bu nedenle, bir şeyler ters giderse, veritabanını temizleyip XML Toplu Yükleme'yi tekrar başlatabilirsiniz.
Uyarı
İşlem yapılmayan modda, XML Toplu Yükleme varsayılan bir iç işlem kullanır ve bunu commit eder. İşlem özelliği TRUE olarak ayarlandığında, XML Toplu Yükleme bu işlem üzerinde commit çağrısı yapmaz.
İşlem özelliği TRUE olarak ayarlanmışsa, XML Toplu Yükleme geçici dosyalar oluşturur; bu dosyalar eşleme şemasında tanımlanan her tablo için bir tane olur. XML Toplu Yükleme önce kaynak XML belgesinden kayıtları bu geçici dosyalarda saklar. Daha sonra, Transact-SQL bir BULK INSERT ifadesi bu kayıtları dosyalardan alır ve ilgili tablolarda saklar. Bu geçici dosyaların konumunu TempFilePath özelliğini kullanarak belirleyebilirsiniz. XML Toplu Yükleme ile kullanılan SQL Server hesabının bu yola erişimi olduğundan emin olmalısınız. Eğer TempFilePath özelliği belirtilmemişse, TEMP ortam değişkeninde belirtilen varsayılan dosya yolu geçici dosyalar oluşturulur.
Eğer İşlem özelliği FALSE olarak ayarlanmışsa (varsayılan ayar), XML Toplu Yükleme verileri toplu yüklemek için IRowsetFastLoad arayüzü kullanır.
ConnectionString özelliği bağlantı dizisini ayarlarsa ve Transaction özelliği TRUE olarak ayarlanırsa, XML Toplu Yük kendi işlem bağlamında çalışır. (Örneğin, XML Toplu Yükleme kendi işlemini başlatır ve uygun olduğunda commit yapar veya geri alır.)
ConnectionCommand özelliği mevcut bir bağlantı nesnesine bağlantı ayarlarsa ve Transaction özelliği TRUE olarak ayarlanmışsa, XML Toplu Yük başarı veya başarısızlık durumunda sırasıyla COMMIT veya ROLLBACK ifadesi vermez. Hata olursa, XML Toplu Yükleme uygun hata mesajını döndürür. COMMIT veya ROLLBACK ifadesi verme kararı, toplu yükü başlatan istemciye bırakılır. XML Toplu Yük için kullanılan bağlantı nesnesi ICommand tipinde veya ADO komut nesnesi olmalıdır.
SQLXML 4.0'da, TransactionObject özelliği FALSE olarak ayarlandığında bir ConnectionObject kullanılamaz. İşlemsiz mod, ConnectionObject ile desteklenmez çünkü bir geçişli oturumda birden fazla IRowsetFastLoad arayüzü açmak imkansızdır.