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ı
Bir şemada, XML belgesinden tüketilmeyen tüm verileri almak için bir sütunu taşma sütunu olarak tanımlanabilir. Bu sütun, sql:overflow-field annotasyonu kullanılarak şemada belirtilir. Birden fazla taşma sütunu olması mümkündür.
Sql:overflow-field açıklaması tanımlanmış bir XML düğümü (öğe veya öznitelik) kapsama girdiğinde, taşma sütunu aktive olur ve tüketilmemiş veri alır. Düğüm kapsam dışı olduğunda, taşım sütunu artık aktif değildir ve XML Toplu Yük, önceki taşma alanını (varsa) aktif kılar.
Verileri taşma sütununda sakladığı gibi, XML Toplu Yük ayrıca sql:overflow-alanının tanımlandığı ana elemanın açılış ve kapanış etiketlerini de saklar.
Örneğin, aşağıdaki şema Customers> ve CustOrder öğelerini< tanımlar.>< Bu elemanların her biri bir taşma sütununu tanımlar:
<?xml version="1.0" ?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:sql="urn:schemas-microsoft-com:mapping-schema">
<xsd:annotation>
<xsd:appinfo>
<sql:relationship name="CustCustOrder"
parent="Cust"
parent-key="CustomerID"
child="CustOrder"
child-key="CustomerID" />
</xsd:appinfo>
</xsd:annotation>
<xsd:element name="ROOT" sql:is-constant="1">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Customers"
sql:relation="Cust"
sql:overflow-field="OverflowColumn">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="CustomerID" type="xsd:integer"/>
<xsd:element name="CompanyName" type="xsd:string"/>
<xsd:element name="City" type="xsd:string"/>
<xsd:element name="Order"
sql:relation="CustOrder"
sql:relationship="CustCustOrder"
sql:overflow-field="OverflowColumn">
<xsd:complexType>
<xsd:attribute name="OrderID"/>
<xsd:attribute name="CustomerID"/>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>
Şemada, <Müşteri> öğesi Cust tablosuna, <Order> öğesi ise CustOrder tablosuna eşlenir.
Hem Müşteri> hem de<<Sipariş öğeleri> bir taşma sütununu tanımlar. Böylece, XML Toplu Yük, tüketilmeyen tüm Müşteri<> öğesi ve özniteliklerini Cust tablosunun taşma sütununda, tüketilmemiş tüm Order> öğesi ve özniteliklerini< ise CustOrder tablosunun taşma sütununda kaydeder.
Çalışan bir örnek test etmek için
Bu örnekte verilen şemayı SampleSchema.xmlolarak kaydedin.
Şu tabloları oluşturun:
CREATE TABLE Cust ( CustomerID int PRIMARY KEY, CompanyName varchar(20) NOT NULL, City varchar(20) DEFAULT 'Seattle', OverflowColumn nvarchar(200)) GO CREATE TABLE CustOrder ( OrderID int PRIMARY KEY, CustomerID int FOREIGN KEY REFERENCES Cust(CustomerID), OverflowColumn nvarchar(200)) GOAşağıdaki örnek XML verilerini SampleXMLData.xmlolarak kaydedin:
<ROOT> <Customers> <CustomerID>1111</CustomerID> <CompanyName>Hanari Carnes</CompanyName> <City><![CDATA[NY]]> </City> <Junk>garbage in overflow</Junk> <Order OrderID="1" /> <Order OrderID="2" /> </Customers> <Customers> <CustomerID>1112</CustomerID> <CompanyName>Toms Spezialitten</CompanyName> <City><![CDATA[LA]]> </City> <xyz><address>111 Maple, Seattle</address></xyz> <Order OrderID="3" /> </Customers> <Customers> <CustomerID>1113</CustomerID> <CompanyName>Victuailles en stock</CompanyName> <Order OrderID="4" /> </Customers> </ROOT>XML Toplu Yükleme çalıştırmak için, bu Microsoft Visual Basic Scripting Edition (VBScript) örneğini Sample.vbs olarak kaydedip çalıştırın:
set objBL = CreateObject("SQLXMLBulkLoad.SQLXMLBulkload.4.0") objBL.ConnectionString = "provider=SQLOLEDB;data source=localhost;database=tempdb;integrated security=SSPI" objBL.ErrorLogFile = "c:\error.log" objBL.CheckConstraints = True objBL.Execute "c:\SampleSchema.xml", "c:\SampleXMLData.xml" set objBL=Nothing