Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
In einem Schema können Sie eine Spalte als Überlaufspalte identifizieren, um alle nicht verarbeiteten Daten aus dem XML-Dokument zu empfangen. Diese Spalte wird im Schema mithilfe der sql:overflow-field Anmerkung angegeben. Es ist möglich, mehrere Überlaufspalten zu haben.
Wenn ein XML-Knoten (Element oder Attribut), für den eine sql:overflow-field Anmerkung definiert ist, in den Bereich eingegeben wird, wird die Überlaufspalte aktiviert und empfängt unkonsumierte Daten. Wenn der Knoten außerhalb des Gültigkeitsbereichs liegt, ist die Überlaufspalte nicht mehr aktiv, und die XML-Massenlast macht das vorherige Überlauffeld (sofern vorhanden) aktiv.
Beim Speichern von Daten in der Überlaufspalte speichert XML Bulk Load auch die öffnenden und schließenden Tags des übergeordneten Elements, für das sql:overflow-field definiert ist.
Das folgende Schema beschreibt beispielsweise die <Elemente Customers> und <CustOrder> . Jedes dieser Elemente identifiziert eine Überlaufspalte:
<?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>
Im Schema ordnet das <Element "Customer> " der Tabelle "Cust" und dem <Element "Order> " der CustOrder-Tabelle zu.
Sowohl die <Elemente "Kunde> " als <auch "Order> " identifizieren eine Überlaufspalte. Daher speichert XML Bulk Load alle nicht fortgesetzten untergeordneten Elemente und Attribute des <Customer-Elements> in der Überlaufspalte der Cust-Tabelle und alle nicht fortgesetzten untergeordneten Elemente und Attribute des <Order-Elements> in der Überlaufspalte der CustOrder-Tabelle.
So testen Sie ein Arbeitsbeispiel
Speichern Sie das schema, das in diesem Beispiel bereitgestellt wird, als SampleSchema.xml.
Erstellen Sie diese Tabellen:
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)) GOSpeichern Sie die folgenden XML-Beispieldaten als SampleXMLData.xml:
<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>Zum Ausführen des XML-Massenladevorgangs speichern und ausführen Sie dieses Beispiel für Microsoft Visual Basic Scripting Edition (VBScript) als Sample.vbs:
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