Aracılığıyla paylaş


SQL:Overflow-alan (SQLxml 4.0)

Şemada bir sütun xml belgesinden tüm unconsumed veri almak için bir taşma sütun olarak tanımlayabilirsiniz.Bu sütun kullanarak şemada belirtilen sql:overflow-field ek açıklama.Birden çok taşma sütun olması mümkündür.

Var olan bir xml düğümü olduğunda (öğe veya öznitelik) bir sql:overflow-field tanımlanan ek açıklama taşma kapsam içine girdiği sütun etkinleştirilir ve aldığı unconsumed veri.Düğüm kapsam dışına gittiğinde, taşma sütun artık etkin ve xml Bulk Load yapar Önceki taşma alan (eğer varsa) etkin.

Bu veri taşma alanında depolar gibi sütun, xml Bulk Load de depolar açýlýþ ve kapanýþ etiketleri üst öğenin kendisi için sql:overflow-field tanımlanır.

Örneğin, aşağıdaki şema açıklar <müşterilerin> ve <CustOrder> öğeleri.Bu öğelerin her taşma sütun tanımlar:

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

Şema içindeki <Müşteri> öğesi Cust tablo eşleştirir ve <Sipariş> eşler öğesi CustOrder tablo.

Her iki <Müşteri> ve <Sipariş> öğeleri tanımlamak bir taşma sütun.Bu nedenle, xml Bulk Load öðeler ve öznitelikler, tüm unconsumed alt kaydeder <Müşteri> öğesi taşan sütun Cust tablo ve tüm unconsumed alt öğeleri ve öznitelikleri <Sipariş> öğesi taşan sütun CustOrder tablo.

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

  1. Bu örnekte, sağlanan şema SampleSchema.xml kaydedin.

  2. Bu tablolar oluşturun:

    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))
    GO
    
  3. Aşağıdaki örnek xml verileri SampleXMLData.xml kaydedin:

    <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>
    
  4. xml Bulk Load yürütmek için kaydedin ve bu yürütme Microsoft Sample.vbs olarak Visual Basic Scripting Edition (VBScript) örnek:

    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