XML 대량 로드는 XSD 스키마의 주석을 예상대로 처리 sql:mapped 합니다. 즉, 매핑 스키마가 요소 또는 특성에 대해 지정 sql:mapped="false" 하는 경우 XML 대량 로드는 연결된 데이터를 해당 열에 저장하려고 시도하지 않습니다.
XML 대량 로드는 매핑되지 않은 요소 및 특성을 무시합니다(스키마에 설명되지 않았거나 XSD 스키마 sql:mapped="false"에 주석이 추가되어 있기 때문). 매핑되지 않은 모든 데이터는 오버플로 열로 이동하며, 이러한 열은 .를 사용하여 sql:overflow-field지정됩니다.
예를 들어 다음 XSD 스키마를 고려합니다.
<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>
HomePhone 특성이 지정sql:mapped="false"하기 때문에 XML 대량 로드는 이 특성을 해당 열에 매핑하지 않습니다. XSD 스키마는 XML 대량 로드가 이 미해결 데이터를 저장하는 오버플로 열(OverflowColumn)을 식별합니다.
작업 샘플을 테스트하려면
tempdb 데이터베이스에서 다음 테이블을 만듭니다.
USE tempdb CREATE TABLE Cust (CustomerID int PRIMARY KEY, CompanyName varchar(20) NOT NULL, City varchar(20) DEFAULT 'Seattle', OverflowColumn nvarchar(200)) GO이 예제에 제공된 스키마를 SampleSchema.xml저장합니다.
다음 샘플 XML 데이터를 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>XML 대량 로드를 실행하려면 다음 Microsoft VBScript(Visual Basic Scripting Edition) 예제를 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
해당하는 XDR 스키마입니다.
<?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>