Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Berlaku untuk: SQL Server
Azure SQL Database
Dalam skema, Anda dapat mengidentifikasi kolom sebagai kolom luapan untuk menerima semua data yang tidak dikonsumsi dari dokumen XML. Kolom ini ditentukan dalam skema dengan menggunakan anotasi sql:overflow-field . Dimungkinkan untuk memiliki beberapa kolom luapan.
Setiap kali simpul XML (elemen atau atribut) yang ada anotasi bidang sql:overflow yang ditentukan dimasukkan ke dalam cakupan, kolom luapan diaktifkan dan menerima data yang tidak dikonsumsi. Ketika simpul keluar dari cakupan, kolom luapan tidak lagi aktif dan Beban Massal XML membuat bidang luapan sebelumnya (jika ada) aktif.
Saat menyimpan data di kolom luapan, Beban Massal XML juga menyimpan tag pembuka dan penutupan elemen induk yang didefinisikan sql:overflow-field .
Misalnya, skema berikut menjelaskan elemen Pelanggan> dan <CustOrder>.< Masing-masing elemen ini mengidentifikasi kolom luapan:
<?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>
Dalam skema, <elemen Pelanggan> memetakan ke tabel Cust dan <elemen Order> memetakan ke tabel CustOrder.
<Elemen Pelanggan> dan <Pesanan> mengidentifikasi kolom luapan. Dengan demikian, Beban Massal XML menyimpan semua elemen turunan yang tidak dikonsumsi dan atribut elemen Pelanggan> di kolom luapan tabel Kust, dan semua elemen turunan yang tidak dikonsumsi dan atribut elemen Pesanan< >di kolom luapan tabel CustOrder.<
Untuk menguji sampel yang berfungsi
Simpan skema yang disediakan dalam contoh ini sebagai SampleSchema.xml.
Buat tabel ini:
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)) GOSimpan contoh data XML berikut sebagai 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>Untuk menjalankan Pemuatan Massal XML, simpan dan jalankan contoh Microsoft Visual Basic Scripting Edition (VBScript) ini sebagai 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