Aracılığıyla paylaş


Unconsumed bilgilerini kullanarak sql:overflow alınıyor-alan (SQLXML 4.0)

Ne zaman kayıt veritabanında bir XML belgesinden kullanarak eklenen Transact-SQL OPENXML işlev, tüm unconsumed veri kaynağına XML belgesindeki depolanabilir bir sütun. Açıklama eklediğiniz şemalar'ı kullanarak bir veritabanından veri aldığınızda, belirtebileceğiniz sql:overflow-field sütun tanımlamak için öznitelik tablo taşma verilerin saklandığı yer. The sql:overflow-field öznitelik can be specified on <element>.

Bu veriler, daha sonra bu yolla alınır:

  • Taşma alanında depolanan öznitelikleri sütun içeren öğeye eklenen sql:overflow-field Ek açıklama.

  • Alt öğeler ve bunların descendents taşma alanında depolanan, sütun veritabanında, şemada açıkça belirtilen içeriği izleyen bir alt öğe olarak eklenir.(Hiçbir sipariş korunur.)

Örnekler

Aşağıdaki örnekler kullanarak çalışma örnekleri oluşturmak için , belirli gereksinimleri karşılaması gerekir.Daha fazla bilgi için bkz:SQLXML örnekleri çalıştırma gereksinimleri.

C.SQL:Overflow belirtme - bir öğe için alan

Bu örnek için tempdb veritabanında Customers2 adlı bir tablo varsa, aşağıdaki komut dosyası çalıştırıldı varsayılmaktadır:

USE tempdb
CREATE TABLE Customers2 (
CustomerID       VARCHAR(10), 
ContactName    VARCHAR(30), 
AddressOverflow    NVARCHAR(500))

GO
INSERT INTO Customers2 VALUES (
'ALFKI', 
'Joe',
'<Address>
  <Address1>Maple St.</Address1>
  <Address2>Apt. E105</Address2>
  <City>Seattle</City>
  <State>WA</State>
  <Zip>98147</Zip>
 </Address>')
GO

Buna ek olarak, tempdb veritabanı için bir sanal dizin oluşturun — ve sanal bir şablon adı template"Şablon" adlı türü.

Aşağıdaki örnekte, eşleme şemada unconsumed AddressOverflow içinde depolanan verileri alır sütun Customers2 Tablo:

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
            xmlns:sql="urn:schemas-microsoft-com:mapping-schema">

  <xsd:element name="Customers2" sql:overflow-field="AddressOverflow" >
    <xsd:complexType>
      <xsd:attribute name="CustomerID"  type="xsd:integer"/>
      <xsd:attribute name="ContactName"  type="xsd:string" />
    </xsd:complexType>
  </xsd:element>
</xsd:schema>

Şemaya örnek bir XPath sorgusu sınamak için

  1. Yukarıdaki şema kodunu kopyalayıp, bir metin dosyasına yapıştırın.Dosyayı Overflow.xml kaydedin.

  2. Şu şablonu kopyalayıp, bir metin dosyasına yapıştırın.Dosya OverflowT.xml Overflow.xml kaydettiğiniz aynı dizine kaydedin.Şablon bir sorguda, Customers2 tablodaki kayıtları seçer.

    <ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql">
        <sql:xpath-query mapping-schema="Overflow.xml">
            /Customers2
        </sql:xpath-query>
    </ROOT>
    

    Eşleştirme şemasını (Overflow.xml) dizini belirtilen şablon kaydedildiği göreli dizinidir.Mutlak bir yol da, örneğin belirtilebilir:

    mapping-schema="C:\SqlXmlTest\Overflow.xml"
    
  3. Oluşturun ve SQLXML 4.0 sınama komut dosyası (Sqlxml4test.vbs) şablonu yürütmek için kullanın.

    Daha fazla bilgi için bkz:ADO SQLXML yürütmek kullanarak 4.0 sorgular..

sonuç kümesi aşağıdadır:

<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql">
  <Customers2 CustomerID="ALFKI" ContactName="Joe">
    <Address1>Maple St.</Address1> 
    <Address2>Apt. E105</Address2> 
    <City>Seattle</City> 
    <State>WA</State> 
    <Zip>98147</Zip> 
  </Customers2>
</ROOT>