Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Van toepassing op:SQL Server
Azure SQL Database
XML Bulk Load verwerkt de sql:mapped-annotatie in het XSD-schema zoals verwacht – dat wil zeggen, als het mappingschema sql:mapped="false" specificeert voor een element of attribuut, probeert XML Bulk Load de bijbehorende gegevens niet in de overeenkomstige kolom op te slaan.
XML Bulk Load negeert elementen en attributen die niet zijn toegewezen (hetzij omdat ze niet in het schema worden beschreven, hetzij omdat ze in het XSD-schema zijn geannoteerd met sql:mapped="false"). Alle niet-toegewezen data gaat in de overflow-kolom, als zo'n kolom wordt gespecificeerd met sql:overflow-field.
Denk bijvoorbeeld aan dit XSD-schema:
<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>
Omdat het HomePhone-attribuutsql:mapped="false" specificeert, mapt XML Bulk Load dit attribuut niet aan de overeenkomstige kolom. Het XSD-schema identificeert een overflowkolom (OverflowColumn) waarin XML Bulk Load deze niet-gebruikte data opslaat.
Om een werkmonster te testen
Maak de volgende tabel aan in de tempdb-database :
USE tempdb CREATE TABLE Cust (CustomerID int PRIMARY KEY, CompanyName varchar(20) NOT NULL, City varchar(20) DEFAULT 'Seattle', OverflowColumn nvarchar(200)) GOSla het schema dat in dit voorbeeld wordt gegeven op als SampleSchema.xml.
Sla de volgende voorbeeld-XML-gegevens op als SampleXMLData.xml:
<ROOT> <Customers CustomerID="1111" CompanyName="Sean Chai" City="NY" HomePhone="111-1111" /> <Customers CustomerID="1112" CompanyName="Dont Know" City="LA" HomePhone="222-2222" /> </ROOT>Om XML Bulk Load uit te voeren, sla en voer dit voorbeeld van Microsoft Visual Basic Scripting Edition (VBScript) uit 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
Dit is het equivalente XDR-schema:
<?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>