Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A következőkre vonatkozik:SQL Server
Azure SQL Database
Az XML Bulk Load az XSD sémában a sql:mapped annotációt a várt módon dolgozza fel – vagyis ha a leképezési séma bármely elemre vagy attribútumra sql:mapped="false" opciót ad meg, akkor az XML Bulk Load nem próbálja a kapcsolódó adatokat a megfelelő oszlopban tárolni.
Az XML Tömeges Terhelés figyelmen kívül hagyja azokat az elemeket és attribútumokat, amelyek nincsenek leképezve (vagy azért, mert a séma nem van leírva, vagy mert az XSD sémában sql:mapped="false" jelöléssel vannak megjelölve). Minden leképezetlen adat a túlfolyó oszlopba kerül, ha ilyen oszlopot sql:overflow-field segítségével meg kell határozni.
Vegyük például ezt az XSD-sémát:
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:sql="urn:schemas-microsoft-com:mapping-schema">
<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:attribute name="CustomerID" type="xsd:integer" />
<xsd:attribute name="CompanyName" type="xsd:string" />
<xsd:attribute name="City" type="xsd:string" />
<xsd:attribute name="HomePhone" type="xsd:string"
sql:mapped="false" />
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>
Mivel a HomePhone attribútuma megadja a sql:mapped="false"-t, az XML Bulk Load nem jelöli ki ezt az attribútumot a megfelelő oszlophoz. Az XSD séma egy túlcsordulás oszlopot (OverflowColumn) azonosít, amelyben az XML Bulk Load tárolja ezt a felmerült adatot.
Egy működő minta teszteléséhez
Készítsd el a következő táblázatot a tempdb adatbázisban:
USE tempdb CREATE TABLE Cust (CustomerID int PRIMARY KEY, CompanyName varchar(20) NOT NULL, City varchar(20) DEFAULT 'Seattle', OverflowColumn nvarchar(200)) GOA példában megadott sémát SampleSchema.xml.
A következő XML adat mintaadatokat SampleXMLData.xmlalatt tároljuk:
<ROOT> <Customers CustomerID="1111" CompanyName="Sean Chai" City="NY" HomePhone="111-1111" /> <Customers CustomerID="1112" CompanyName="Dont Know" City="LA" HomePhone="222-2222" /> </ROOT>Az XML Bulk Load végrehajtásához mentsd el és hajtsa végre ezt a Microsoft Visual Basic Scripting Edition (VBScript) példát Sample.vbs néven:
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
Ez a megfelelő XDR-séma:
<?xml version="1.0" ?>
<Schema xmlns="urn:schemas-microsoft-com:xml-data"
xmlns:sql="urn:schemas-microsoft-com:xml-sql" >
<ElementType name="ROOT" sql:is-constant="1">
<element type="Customers" />
</ElementType>
<ElementType name="Customers" sql:relation="Cust"
sql:overflow-field="OverflowColumn" >
<AttributeType name="CustomerID" />
<AttributeType name="CompanyName" />
<AttributeType name="City" />
<AttributeType name="HomePhone" />
<attribute type="CustomerID" />
<attribute type="CompanyName" />
<attribute type="City" />
<attribute type="HomePhone" sql:map-field="0" />
</ElementType>
</Schema>