Aracılığıyla paylaş


SQL: (SQLXML 4.0) eşleştirilmiş.

XML toplu yükleme işlemleri sql:mapped XSD Şemasındaki beklendiği gibi ek açıklama — diğer bir deyişle, eşleme şemada belirtir. sql:mapped="false" herhangi bir öğe veya öznitelik için karşılık gelen sütun ilişkili veri depolamak XML toplu yükleme denemez.

XML toplu yükleme öğeleri ve öznitelikleri (ya da şemada tanımlanan veya ile XSD Şemasındaki açıklamalı için eşleştirilmemiş yoksayar. sql:mapped="false"). Tüm bağlanılmayan verileri kullanarak sütun belirtilirse taşma sütuna, gider sql:overflow-field.

Örneğin, bu XSD şeması göz önünde bulundurun:

<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>

Çünkü EvTelefonu özniteliği belirtirsql:mapped="false"XML toplu yükleme bu öznitelik, karşılık gelen sütuna eşleşmiyor. Bir taşma sütun (XSD şeması tanımlarOverflowColumn) içinde XML toplu yükleme bu unconsumed depolamaz.

Bir çalışan örneği sınamak için

  1. Aşağıdaki tabloda oluşturma tempdb veritabanı:

    USE tempdb
    CREATE TABLE Cust
              (CustomerID     int         PRIMARY KEY,
               CompanyName    varchar(20) NOT NULL,
               City           varchar(20) DEFAULT 'Seattle',
               OverflowColumn nvarchar(200))
    GO
    
  2. Bu örnekte, sağlanan şema SampleSchema.xml kaydedin.

  3. Aşağıdaki örnek XML verileri SampleXMLData.xml kaydedin:

    <ROOT>
      <Customers CustomerID="1111" CompanyName="Sean Chai" 
                 City="NY" HomePhone="111-1111" />
      <Customers CustomerID="1112" CompanyName="Dont Know" 
                 City="LA" HomePhone="222-2222" />
    </ROOT>
    
  4. XML toplu yükleme yürütmek için kaydedin ve bu yürütme Microsoft Visual Basic komut dosyası kullanan Edition (VBScript) örnek olarak 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
    

Bu, eşdeğer XDR şeması oluşur:

<?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>