Aracılığıyla paylaş


xml Updategrams (sqlxml 4.0) kullanarak veri ekleme

Kaydı örneği görünür bir updategram ekleme işlemi gösterir <after>blok değil de ilgili <before>Blok. Bu durumda, kayıtta updategram ekler <after>Blok veritabanına.

Bu ekleme işlemi için updategram biçimidir:

<ROOT xmlns:updg="urn:schemas-microsoft-com:xml-updategram">
  <updg:sync [mapping-schema="SampleSchema.xml"]  >
   [<updg:before>
   </updg:before>]
    <updg:after [updg:returnid="x y ...] >
       <ElementName [updg:id="value"] 
                   [updg:at-identity="x"] 
                   [updg:guid="y"]
                   attribute="value" 
                   attribute="value"
                   ...
       />
      [<ElementName .../>... ]
    </updg:after>
  </updg:sync>
</ROOT>

<ROOT xmlns:updg="urn:schemas-microsoft-com:xml-updategram">
  <updg:sync [mapping-schema="SampleSchema.xml"]  >
   [<updg:before>
   </updg:before>]
    <updg:after [updg:returnid="x y ...] >
       <ElementName [updg:id="value"] 
                   [updg:at-identity="x"] 
                   [updg:guid="y"]
                   attribute="value" 
                   attribute="value"
                   ...
       />
      [<ElementName .../>... ]
    </updg:after>
  </updg:sync>
</ROOT>

&lt;önce&gt; blok

<before>Blok ekleme işlemi için atlanmış. Eğer isteğe bağlı mapping-schemaözniteliği belirtilmemişse, <ElementName>Bu updategram haritalar veritabanı tablo ve alt öğeleri için belirtilen ya da tablo sütunları göster öznitelikleri.

&lt;sonra&gt; blok

Bir veya daha fazla kayıtları belirttiğiniz <after>Blok.

Eğer <after>blok belirli bir sütun için bir değer sağlamanız değil, the updategram (şema belirtilmişse) Açıklama eklediğiniz şema belirtilen varsayılan değeri kullanır. Şema sütun için varsayılan değer belirtmezse, updategram bu sütun açık herhangi bir değeri belirtmez ve bunun yerine atar Microsoft  SQL Servervarsayılan değer (belirtilmişse) bu sütuna. Eğer orada hiç SQL Servervarsayılan değer ve sütun null değeri kabul eden, the updategram sütun değeri null olarak ayarlar. Sütun kendisi varsayılan değeri null değeri kabul eder, komut başarısız olur ve updategram, bir hata döndürür. İsteğe bağlı updg:returnidöznitelik türü kimlik sütunu olan bir tablodaki bir kayıt eklendiğinde sistem tarafından oluşturulan kimlik değeri döndürmek için kullanılır.

updg: id özniteliği

Updategram updategram yalnızca kayıt ekleme, değil gerektirir updg:idözniteliği. Hakkında daha fazla bilgi için updg:idbakın xml Updategrams (sqlxml 4.0) kullanarak veri güncelleştirme.

updg:, kimlik özniteliği

Bir updategram kimlik türü sütunu olan bir tabloya kayıt eklediğinde, the updategram sistem atanan değer isteğe bağlı kullanarak yakalayabilirsiniz updg:at-identityözniteliği. Updategram, sonraki işlemlerde bu değer daha sonra kullanabilirsiniz. Updategram yürütme belirterek oluşturulan kimlik değerini döndürebilir updg:returnidözniteliği.

e.updg:Guid özniteliği

updg:guidBir genel benzersiz tanımlayıcı üretir bir isteğe bağlı öznitelik özniteliğidir. Bu değer için tüm kapsam kalır <sync> olan o belirtilen içinde engelleme. Sen-ebilmek kullanma bu değeri her yerde <sync>Blok. Öznitelik aramaları NEWGUID() SQL Serverbenzersiz tanımlayıcı oluşturmak için işlev.

Örnekler

Aşağıdaki örnekler kullanarak çalışma örnekleri oluşturmak için belirtilen gereksinimleri karşılamalıdır sqlxml örnekleri çalıştırma gereksinimleri.

Updategram örnekler kullanmadan önce aşağıdaki dikkat edin:

  • Örneklerin çoğu kullanmak varsayılan eşleme (yani, hiçbir eşleme şema updategram içinde belirtilen). Eşleme şemaları kullanın updategrams daha fazla örnek için bkz: Açıklama eklenmiş bir eşleme şeması bir Updategram (sqlxml 4.0) belirtme.

  • Örneklerin çoğu kullanmak AdventureWorks2012 örnek veritabanı. Tüm güncelleştirmeler bu veritabanındaki tablolara uygulanır.

A.Bir updategram kullanarak bir kayıt ekleme

Bu öznitelik merkezli updategram HumanResources.Employee tablosunda bir kayıt ekler AdventureWorks2012 veritabanı.

Bu örnekte updategram eşleme şema belirtin. Bu nedenle, updategram içinde öğe adı tablo adı ve öznitelikleri veya alt öğeleri göster Bu tablodaki sütun eşleştirir, varsayılan eşleme kullanır.

AdventureWorks2012 HumanResources.Department tablo için şema getiren bir 'null' tüm sütunları sınırlaması. Bu nedenle, the updategram tüm sütunlar için belirtilen değerler içermelidir. DepartmentID kimlik türü sütundur. Bu nedenle, hiçbir değer için belirtilir.

<ROOT xmlns:updg="urn:schemas-microsoft-com:xml-updategram">
  <updg:sync >
    <updg:before>
    </updg:before>
    <updg:after>
       <HumanResources.Department 
            Name="New Product Research" 
            GroupName="Research and Development" 
            ModifiedDate="2010-08-31"/>
    </updg:after>
  </updg:sync>
</ROOT>

<ROOT xmlns:updg="urn:schemas-microsoft-com:xml-updategram">
  <updg:sync >
    <updg:before>
    </updg:before>
    <updg:after>
       <HumanResources.Department 
            Name="New Product Research" 
            GroupName="Research and Development" 
            ModifiedDate="2010-08-31"/>
    </updg:after>
  </updg:sync>
</ROOT>

Örnek XPath sorgusu şema karşı sınamak için

  1. Yukarıdaki updategram kopyalayıp bir metin dosyasına yapıştırın. Dosyayı MyUpdategram.xml kaydedin.

  2. 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ütme kullanarak 4.0 sorgular.

Bir öğe merkezli eşleme olarak updategram aşağıdaki gibi görünür:

<ROOT xmlns:updg="urn:schemas-microsoft-com:xml-updategram">
  <updg:sync >
    <updg:before>
    </updg:before>
    <updg:after>
       <HumanResources.Department>
            <Name> New Product Research </Name>
            <GroupName> Research and Development </GroupName>
            <ModifiedDate>2010-08-31</ModifiedDate>
       </HumanResources.Department>
    </updg:after>
  </updg:sync>
</ROOT>

<ROOT xmlns:updg="urn:schemas-microsoft-com:xml-updategram">
  <updg:sync >
    <updg:before>
    </updg:before>
    <updg:after>
       <HumanResources.Department>
            <Name> New Product Research </Name>
            <GroupName> Research and Development </GroupName>
            <ModifiedDate>2010-08-31</ModifiedDate>
       </HumanResources.Department>
    </updg:after>
  </updg:sync>
</ROOT>

Bir karma mod (öğe merkezli ve öznitelik merkezli) updategram öğe öznitelikleri ve alt öğeleri, Bu updategram içinde gösterildiği gibi olabilir:

<ROOT xmlns:updg="urn:schemas-microsoft-com:xml-updategram">
  <updg:sync >
    <updg:before>
    </updg:before>
    <updg:after>
       <HumanResources.Department 
            Name=" New Product Research " 
            <GroupName>Research and Development</GroupName>
            <ModifiedDate>2010-08-31</ModifiedDate>
       </HumanResources.Department>
    </updg:after>
  </updg:sync>
</ROOT>

<ROOT xmlns:updg="urn:schemas-microsoft-com:xml-updategram">
  <updg:sync >
    <updg:before>
    </updg:before>
    <updg:after>
       <HumanResources.Department 
            Name=" New Product Research " 
            <GroupName>Research and Development</GroupName>
            <ModifiedDate>2010-08-31</ModifiedDate>
       </HumanResources.Department>
    </updg:after>
  </updg:sync>
</ROOT>

B.Birden çok kayıt bir updategram kullanarak eklemeyi

Bu updategram iki yeni vardiya kayıtları HumanResources.Shift tablo ekler. Updategram isteğe bağlı belirtmiyor <before>Blok.

<ROOT xmlns:updg="urn:schemas-microsoft-com:xml-updategram">
  <updg:sync>
    <updg:after >
       <HumanResources.Shift Name="Day-Evening"
                        StartTime="1900-01-01 11:00:00.000"
                        EndTime="1900-01-01 19:00:00.000"
                        ModifiedDate="2004-01-01 00:00:00.000" />
       <HumanResources.Shift Name="Evening-Night"
                        StartTime="1900-01-01 19:00:00.000"
                        EndTime="1900-01-01 03:00:00.000"
                        ModifiedDate="2004-01-01 00:00:00.000" />
    </updg:after>
  </updg:sync>
</ROOT>

<ROOT xmlns:updg="urn:schemas-microsoft-com:xml-updategram">
  <updg:sync>
    <updg:after >
       <HumanResources.Shift Name="Day-Evening"
                        StartTime="1900-01-01 11:00:00.000"
                        EndTime="1900-01-01 19:00:00.000"
                        ModifiedDate="2004-01-01 00:00:00.000" />
       <HumanResources.Shift Name="Evening-Night"
                        StartTime="1900-01-01 19:00:00.000"
                        EndTime="1900-01-01 03:00:00.000"
                        ModifiedDate="2004-01-01 00:00:00.000" />
    </updg:after>
  </updg:sync>
</ROOT>

Örnek XPath sorgusu şema karşı sınamak için

  1. Yukarıdaki updategram kopyalayıp bir metin dosyasına yapıştırın. Updategram-AddShifts.xml kaydedin.

  2. 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ütme kullanarak 4.0 sorgular.

Bu örnekte, iki ayrı kullanan bir updategram başka bir sürümüdür <after>Blok iki çalışanları eklemek için bir blok yerine. Bu, geçerli ve gibi kodlanmış olabilir:

<ROOT xmlns:updg="urn:schemas-microsoft-com:xml-updategram">
  <updg:sync>
    <updg:after >
       <HumanResources.Shift Name="Day-Evening"
                        StartTime="1900-01-01 11:00:00.000"
                        EndTime="1900-01-01 19:00:00.000"
                        ModifiedDate="2004-01-01 00:00:00.000" />
    </updg:after>
    <updg:before>
    </updg:before>
    <updg:after >
       <HumanResources.Shift Name="Evening-Night"
                        StartTime="1900-01-01 19:00:00.000"
                        EndTime="1900-01-01 03:00:00.000"
                        ModifiedDate="2004-01-01 00:00:00.000" />
    </updg:after>
  </updg:sync>
</ROOT>

<ROOT xmlns:updg="urn:schemas-microsoft-com:xml-updategram">
  <updg:sync>
    <updg:after >
       <HumanResources.Shift Name="Day-Evening"
                        StartTime="1900-01-01 11:00:00.000"
                        EndTime="1900-01-01 19:00:00.000"
                        ModifiedDate="2004-01-01 00:00:00.000" />
    </updg:after>
    <updg:before>
    </updg:before>
    <updg:after >
       <HumanResources.Shift Name="Evening-Night"
                        StartTime="1900-01-01 19:00:00.000"
                        EndTime="1900-01-01 03:00:00.000"
                        ModifiedDate="2004-01-01 00:00:00.000" />
    </updg:after>
  </updg:sync>
</ROOT>

C.XML'de geçerli olmayan geçerli SQL Server karakterlerle çalışma

De SQL Server, tablo adları, boşluk, Sipariş Ayrıntıları tablosu Northwind veritabanı gibi içerebilir. Ancak, bu geçersiz xml karakterler geçerli değil SQL Servertanımlayıcıları ama geçersiz xml tanımlayıcıları '__xHHHH__' kullanılarak kodlanmış olabilir Burada en önemli bit birinci sırada karakter için dört basamaklı onaltılık ucs-2 kod hhhh simgeler kodlama değeri.

[!NOT]

Bu örnek, Northwind veritabanını kullanır. Northwind veritabanı, indirmek için bir sql komut dosyası kullanarak yükleyebilirsiniz. Daha fazla bilgi için, bkz. Downloading Northwind and pubs Sample Databases.

Ayrıca, öğe adı köşeli ayraçlar ([]) içinde alınmalıdır. Karakter [ve] olan XML'de geçerli olmayan, siz bunları _x005B_ ve _x005D_, sırasıyla kodlamak gerekir çünkü. (Eşleme şema kullanırsanız, boşluk gibi geçerli olmayan karakterler içermeyen öğe adları sağlayabilir. Eşleme şema gerekli eşleştirme yapar; Bu nedenle, eğer bu karakterler için kodlama gerek yoktur).

Bu updategram Sipariş Ayrıntıları tablosu Northwind veritabanındaki bir kayıt ekler:

<ROOT xmlns:updg="urn:schemas-microsoft-com:xml-updategram">
  <updg:sync >
    <updg:before>
    </updg:before>
    <updg:after>
      <_x005B_Order_x0020_Details_x005D_ OrderID="1"
            ProductID="11"
            UnitPrice="$1.0"
            Quantity="1"
            Discount="0.0" />
    </updg:after>
  </updg:sync>
</ROOT>

<ROOT xmlns:updg="urn:schemas-microsoft-com:xml-updategram">
  <updg:sync >
    <updg:before>
    </updg:before>
    <updg:after>
      <_x005B_Order_x0020_Details_x005D_ OrderID="1"
            ProductID="11"
            UnitPrice="$1.0"
            Quantity="1"
            Discount="0.0" />
    </updg:after>
  </updg:sync>
</ROOT>

Sipariş Ayrıntıları tablosu BirimFiyat sütununda olduğunu moneytürü. Uygun türü dönüştürme uygulamak (gelen bir stringiçin yazın bir moneytürü), değerin bir parçası dolar işareti karakteriyle ($) eklenmelidir. Updategram eşleme şema, ilk karakteri belirtmek değil stringdeğeri değerlendirilen. İlk karakteri bir dolar işareti ($) ise, uygun dönüşüm uygulanır.

Burada sütun uygun şekilde işaretlenmiş olarak eşleme şema karşı updategram belirtilirse dt:type="fixed.14.4"ya sql:datatype="money", dolar işareti ($) gerekli değildir ve dönüşüm eşleme tarafından işlenir. Bu uygun türü dönüştürme oluştuğunu sağlamak için önerilen yoldur.

Örnek XPath sorgusu şema karşı sınamak için

  1. Yukarıdaki updategram kopyalayıp bir metin dosyasına yapıştırın. Dosyayı UpdategramSpacesInTableName.xml kaydedin.

  2. 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ütme kullanarak 4.0 sorgular.

D.KİMLİK türü sütununda eklenen değerini almak için IDENTITY özniteliği kullanma

Iki kaydı aşağıdaki updategram ekler: Tablo Sales.SalesOrderHeader ve Sales.SalesOrderDetail tablosundaki başka bir tane.

Öncelikle, updategram Sales.SalesOrderHeader Tablo için bir kayıt ekler. Bu tabloda bir kimlik türü sütunu SalesOrderID sütundur. Bu nedenle bu kaydı tablo eklediğinizde, the updategram kullanır at-identity"x" olarak atanan SalesOrderID değeri yakalamak için öznitelik (yer tutucu değeri). Updategam sonra bu belirtir at-identitydeğişken SalesOrderID özniteliği değeri olarak <Sales.SalesOrderDetail > öğesi.

<ROOT xmlns:updg="urn:schemas-microsoft-com:xml-updategram">
 <updg:sync >
  <updg:before>
  </updg:before>
  <updg:after>
   <Sales.SalesOrderHeader updg:at-identity="x" 
             RevisionNumber="1"
             OrderDate="2001-07-01 00:00:00.000"
             DueDate="2001-07-13 00:00:00.000"
             OnlineOrderFlag="0"
             CustomerID="676"
             ContactID="378"
             BillToAddressID="985"
             ShipToAddressID="985"
             ShipMethodID="5"
             SubTotal="24643.9362"
             TaxAmt="1971.5149"
             Freight="616.0984"
             rowguid="00001111-2222-3333-4444-556677889900"
             ModifiedDate="2001-07-08 00:00:00.000" />
      <Sales.SalesOrderDetail SalesOrderID="x"
                LineNumber="1"
                OrderQty="1"
                ProductID="776"
                SpecialOfferID="1"
                UnitPrice="2429.9928"
                UnitPriceDiscount="0.00"
                rowguid="aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee"
                ModifiedDate="2001-07-01 00:00:00.000" />
    </updg:after>
  </updg:sync>
</ROOT>

<ROOT xmlns:updg="urn:schemas-microsoft-com:xml-updategram">
 <updg:sync >
  <updg:before>
  </updg:before>
  <updg:after>
   <Sales.SalesOrderHeader updg:at-identity="x" 
             RevisionNumber="1"
             OrderDate="2001-07-01 00:00:00.000"
             DueDate="2001-07-13 00:00:00.000"
             OnlineOrderFlag="0"
             CustomerID="676"
             ContactID="378"
             BillToAddressID="985"
             ShipToAddressID="985"
             ShipMethodID="5"
             SubTotal="24643.9362"
             TaxAmt="1971.5149"
             Freight="616.0984"
             rowguid="00001111-2222-3333-4444-556677889900"
             ModifiedDate="2001-07-08 00:00:00.000" />
      <Sales.SalesOrderDetail SalesOrderID="x"
                LineNumber="1"
                OrderQty="1"
                ProductID="776"
                SpecialOfferID="1"
                UnitPrice="2429.9928"
                UnitPriceDiscount="0.00"
                rowguid="aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee"
                ModifiedDate="2001-07-01 00:00:00.000" />
    </updg:after>
  </updg:sync>
</ROOT>

Tarafından oluşturulan kimlik değerini döndürmek istediğiniz updg:at-identityözniteliğini kullanarak updg:returnidözniteliği. Bu kimlik değerini gözden geçirilmiş bir updategram aşağıdadır. (Bu updategram iki sipariş ve sadece örnek biraz daha karmaşık yapmak için iki sipariş ayrıntı kayıtlarını ekler.)

<ROOT xmlns:updg="urn:schemas-microsoft-com:xml-updategram">
 <updg:sync>
  <updg:before>
  </updg:before>
  <updg:after updg:returnid="x y" >
       <HumanResources.Shift updg:at-identity="x" Name="Day-Evening"
                        StartTime="1900-01-01 11:00:00.000"
                        EndTime="1900-01-01 19:00:00.000"
                        ModifiedDate="2004-01-01 00:00:00.000" />
       <HumanResources.Shift updg:at-identity="y" Name="Evening-Night"
                        StartTime="1900-01-01 19:00:00.000"
                        EndTime="1900-01-01 03:00:00.000"
                        ModifiedDate="2004-01-01 00:00:00.000" />
  </updg:after>
 </updg:sync>
</ROOT>

<ROOT xmlns:updg="urn:schemas-microsoft-com:xml-updategram">
 <updg:sync>
  <updg:before>
  </updg:before>
  <updg:after updg:returnid="x y" >
       <HumanResources.Shift updg:at-identity="x" Name="Day-Evening"
                        StartTime="1900-01-01 11:00:00.000"
                        EndTime="1900-01-01 19:00:00.000"
                        ModifiedDate="2004-01-01 00:00:00.000" />
       <HumanResources.Shift updg:at-identity="y" Name="Evening-Night"
                        StartTime="1900-01-01 19:00:00.000"
                        EndTime="1900-01-01 03:00:00.000"
                        ModifiedDate="2004-01-01 00:00:00.000" />
  </updg:after>
 </updg:sync>
</ROOT>

Updategram çalıştırıldığında sonuçları oluşturulan kimlik değeri (oluşturulan tablo kimliği için kullanılan ShiftID sütun) içeren aşağıdakine benzer verir:

<ROOT xmlns:updg="urn:schemas-microsoft-com:xml-updategram"> 
  <returnid> 
    <x>4</x> 
    <y>5</y> 
  </returnid> 
</ROOT>

<ROOT xmlns:updg="urn:schemas-microsoft-com:xml-updategram"> 
  <returnid> 
    <x>4</x> 
    <y>5</y> 
  </returnid> 
</ROOT>

Örnek XPath sorgusu şema karşı sınamak için

  1. Yukarıdaki updategram kopyalayıp bir metin dosyasına yapıştırın. Updategram-returnId.xml kaydedin.

  2. 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ütme kullanarak 4.0 sorgular.

E.E.updg:Guid özniteliği benzersiz bir değer üretmek için kullanma

Bu örnekte, müşteri ve CustOrder tablolardaki kayıt için updategram ekler. Ayrıca updategram kullanarak MüşteriNo özniteliği benzersiz bir değer oluşturur updg:guidözniteliği.

<ROOT xmlns:updg="urn:schemas-microsoft-com:xml-updategram">
  <updg:sync >
    <updg:before>
    </updg:before>
    <updg:after updg:returnid="x" >
      <Cust updg:guid="x" >
         <CustID>x</CustID>
         <LastName>Fuller</LastName>
      </Cust>
      <CustOrder>
         <CustID>x</CustID>
         <OrderID>1</OrderID>
      </CustOrder>
    </updg:after>
  </updg:sync>
</ROOT>

<ROOT xmlns:updg="urn:schemas-microsoft-com:xml-updategram">
  <updg:sync >
    <updg:before>
    </updg:before>
    <updg:after updg:returnid="x" >
      <Cust updg:guid="x" >
         <CustID>x</CustID>
         <LastName>Fuller</LastName>
      </Cust>
      <CustOrder>
         <CustID>x</CustID>
         <OrderID>1</OrderID>
      </CustOrder>
    </updg:after>
  </updg:sync>
</ROOT>

The updategram belirtir returnidözniteliği. Sonuç olarak oluşturulan GUID verilir:

<ROOT xmlns:updg="urn:schemas-microsoft-com:xml-updategram">
  <returnid>
    <x>7111BD1A-7F0B-4CEE-B411-260DADFEFA2A</x> 
  </returnid>
</ROOT>

<ROOT xmlns:updg="urn:schemas-microsoft-com:xml-updategram">
  <returnid>
    <x>7111BD1A-7F0B-4CEE-B411-260DADFEFA2A</x> 
  </returnid>
</ROOT>

Updategram sınamak için

  1. Yukarıdaki updategram kopyalayıp bir metin dosyasına yapıştırın. Updategram-GenerateGuid.xml kaydedin.

  2. Bu tablolar oluşturun:

    USE tempdb
    CREATE TABLE Cust (CustID uniqueidentifier, LastName varchar(20))
    CREATE TABLE CustOrder (CustID uniqueidentifier, OrderID int)
    
    USE tempdb
    CREATE TABLE Cust (CustID uniqueidentifier, LastName varchar(20))
    CREATE TABLE CustOrder (CustID uniqueidentifier, OrderID int)
    
  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ütme kullanarak 4.0 sorgular.

F.Bir şema bir updategram belirtme

Bu örnekte updategram aşağıdaki tabloya bir kayıt ekler:

CustOrder(OrderID, EmployeeID, OrderType)

CustOrder(OrderID, EmployeeID, OrderType)

Bu updategram içinde belirtilen xsd şeması (yani, orada hiçbir varsayılan eşleme updategram öğeler ve öznitelikler). Şema öğeleri ve öznitelikleri veritabanı tabloları ve sütunları gerekli eşleme sağlar.

Aşağıdaki şema (CustOrderSchema.xml) açıklayan bir <CustOrder > oluşan eleman OrderID ve EmployeeID öznitelikleri. Şema daha ilginç hale getirmek için varsayılan bir değer atanmış EmployeeID özniteliği. Bir updategram yalnızca ekleme işlemleri için bir özniteliğin varsayılan değeri kullanır ve sonra yalnızca updategram özniteliğe belirtmezse.

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
            xmlns:sql="urn:schemas-microsoft-com:mapping-schema">
  <xsd:element name="CustOrder" >
   <xsd:complexType>
        <xsd:attribute name="OrderID"     type="xsd:integer" /> 
        <xsd:attribute name="EmployeeID"  type="xsd:integer" />
        <xsd:attribute name="OrderType  " type="xsd:integer" default="1"/>
    </xsd:complexType>
  </xsd:element>
</xsd:schema>

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
            xmlns:sql="urn:schemas-microsoft-com:mapping-schema">
  <xsd:element name="CustOrder" >
   <xsd:complexType>
        <xsd:attribute name="OrderID"     type="xsd:integer" /> 
        <xsd:attribute name="EmployeeID"  type="xsd:integer" />
        <xsd:attribute name="OrderType  " type="xsd:integer" default="1"/>
    </xsd:complexType>
  </xsd:element>
</xsd:schema>

Bu updategram CustOrder tabloya bir kayıt ekler. The updategram yalnızca SiparişNo ve ÇalışanNo öznitelik değerlerini belirtir. OrderType öznitelik değeri belirtmez. Bu nedenle, updategram Önceki şemada belirtilen ÇalışanNo öznitelik varsayılan değerini kullanır.

<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql"
             xmlns:updg="urn:schemas-microsoft-com:xml-updategram">
<updg:sync mapping-schema='CustOrderSchema.xml'>
<updg:after>
       <CustOrder OrderID="98000" EmployeeID="1" />
</updg:after>
</updg:sync>
</ROOT>

<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql"
             xmlns:updg="urn:schemas-microsoft-com:xml-updategram">
<updg:sync mapping-schema='CustOrderSchema.xml'>
<updg:after>
       <CustOrder OrderID="98000" EmployeeID="1" />
</updg:after>
</updg:sync>
</ROOT>

Eşleme şema belirtmek updategrams daha fazla örnek için bkz: Açıklama eklenmiş bir eşleme şeması bir Updategram (sqlxml 4.0) belirtme.

Updategram sınamak için

  1. Bu tablo oluşturmak tempdb veritabanı:

    USE tempdb
    CREATE TABLE CustOrder(
                     OrderID int, 
                     EmployeeID int, 
                     OrderType int)
    
    USE tempdb
    CREATE TABLE CustOrder(
                     OrderID int, 
                     EmployeeID int, 
                     OrderType int)
    
  2. Yukarıdaki şema kopyalayıp bir metin dosyasına yapıştırın. Dosyayı CustOrderSchema.xml kaydedin.

  3. Yukarıdaki updategram kopyalayıp bir metin dosyasına yapıştırın. CustOrderUpdategram.xml önceki adımda kullanılan aynı klasörde dosyayı kaydedin.

  4. Oluşturun ve sqlxml 4.0 sınama komut dosyası (Sqlxml4test.vbs) the updategram yürütmek için kullanın.

    Daha fazla bilgi için, bkz. ado sqlxml yürütme kullanarak 4.0 sorgular.

Eşdeğer xdr şeması budur:

<Schema xmlns="urn:schemas-microsoft-com:xml-data"
        xmlns:sql="urn:schemas-microsoft-com:xml-sql">
 <ElementType name="CustOrder" >
    <AttributeType name="OrderID" />
    <AttributeType name="EmployeeID" />
    <AttributeType name="OrderType" default="1" />
    <attribute type="OrderID"  />
    <attribute type="EmployeeID" />
    <attribute type="OrderType" />
  </ElementType>
</Schema>

<Schema xmlns="urn:schemas-microsoft-com:xml-data"
        xmlns:sql="urn:schemas-microsoft-com:xml-sql">
 <ElementType name="CustOrder" >
    <AttributeType name="OrderID" />
    <AttributeType name="EmployeeID" />
    <AttributeType name="OrderType" default="1" />
    <attribute type="OrderID"  />
    <attribute type="EmployeeID" />
    <attribute type="OrderType" />
  </ElementType>
</Schema>

G.Bir sütunda null değerleri eklemek için xsi: nil özniteliği kullanma

Belirleyebileceğiniz tablosundaki karşılık gelen sütun null değeri eklemek isterseniz, xsi:nilbir updategram öğe özniteliğine. İlgili xsd şeması xsd nillableözniteliği de belirtilmesi gerekir.

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

<?xml version="1.0"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
            xmlns:sql="urn:schemas-microsoft-com:mapping-schema">
<xsd:element name="Student" sql:relation="Students">
  <xsd:complexType>
    <xsd:all>
      <xsd:element name="fname" sql:field="first_name" 
                                type="xsd:string" 
                                 nillable="true"/>
    </xsd:all>
    <xsd:attribute name="SID" 
                        sql:field="StudentID"
                        type="xsd:ID"/>    
    <xsd:attribute name="lname"     
                        sql:field="last_name"
                        type="xsd:string"/>
    <xsd:attribute name="minitial"  
                        sql:field="middle_initial" 
                        type="xsd:string"/>
    <xsd:attribute name="years"     
                         sql:field="no_of_years"
                         type="xsd:integer"/>
  </xsd:complexType>
 </xsd:element>
</xsd:schema>

<?xml version="1.0"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
            xmlns:sql="urn:schemas-microsoft-com:mapping-schema">
<xsd:element name="Student" sql:relation="Students">
  <xsd:complexType>
    <xsd:all>
      <xsd:element name="fname" sql:field="first_name" 
                                type="xsd:string" 
                                 nillable="true"/>
    </xsd:all>
    <xsd:attribute name="SID" 
                        sql:field="StudentID"
                        type="xsd:ID"/>    
    <xsd:attribute name="lname"     
                        sql:field="last_name"
                        type="xsd:string"/>
    <xsd:attribute name="minitial"  
                        sql:field="middle_initial" 
                        type="xsd:string"/>
    <xsd:attribute name="years"     
                         sql:field="no_of_years"
                         type="xsd:integer"/>
  </xsd:complexType>
 </xsd:element>
</xsd:schema>

xsd şema belirtir nillable="true" için <fname>öğesi. Aşağıdaki updategram, bu şemayı kullanır:

<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql"
      xmlns:updg="urn:schemas-microsoft-com:xml-updategram"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

<updg:sync mapping-schema='StudentSchema.xml'>
  <updg:before/>
  <updg:after>
    <Student SID="S00004" lname="Elmaci" minitial="" years="2">
      <fname xsi:nil="true">
    </fname>
    </Student>
  </updg:after>
</updg:sync>

</ROOT>

<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql"
      xmlns:updg="urn:schemas-microsoft-com:xml-updategram"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

<updg:sync mapping-schema='StudentSchema.xml'>
  <updg:before/>
  <updg:after>
    <Student SID="S00004" lname="Elmaci" minitial="" years="2">
      <fname xsi:nil="true">
    </fname>
    </Student>
  </updg:after>
</updg:sync>

</ROOT>

The updategram belirtir xsi:niliçin <fname>öğesinde <after>Blok. Bu nedenle, Bu updategram çalıştırıldığında, ilk_ad tablodaki sütun için null değeri eklenir.

Updategram sınamak için

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

    USE tempdb
    CREATE TABLE Students (
       StudentID char(6)NOT NULL ,
       first_name varchar(50),
       last_name varchar(50),
       middle_initial char(1),
       no_of_years int NULL)
    GO
    
    USE tempdb
    CREATE TABLE Students (
       StudentID char(6)NOT NULL ,
       first_name varchar(50),
       last_name varchar(50),
       middle_initial char(1),
       no_of_years int NULL)
    GO
    
  2. Yukarıdaki şema kopyalayıp bir metin dosyasına yapıştırın. Dosyayı StudentSchema.xml kaydedin.

  3. Yukarıdaki updategram kopyalayıp bir metin dosyasına yapıştırın. Dosya olarak StudentUpdategram.xml StudentSchema.xml kaydetmek için önceki adımda kullanılan aynı klasöre kaydedin.

  4. Oluşturun ve sqlxml 4.0 sınama komut dosyası (Sqlxml4test.vbs) the updategram yürütmek için kullanın.

    Daha fazla bilgi için, bkz. ado sqlxml yürütme kullanarak 4.0 sorgular.

H.Ad alanları bir updategram belirtme

Bir updategram updategram aynı öğesinde bildirilen ad alanına ait öğeleri olabilir. Bu durumda, karşılık gelen şema de aynı ad ve öğe bu hedef ad alanına ait olmalıdır bildirmeniz gerekir.

Örneğin, aşağıdaki updategram (UpdateGram ElementHavingNamespace.xml) içinde <Order > öğesi öğesinde bildirilen ad alanına ait.

<ROOT xmlns:updg="urn:schemas-microsoft-com:xml-updategram">
  <updg:sync mapping-schema='XSD-ElementHavingNameSpace.xml'>
    <updg:after>
       <x:Order  xmlns:x="https://server/xyz/schemas/"
             updg:at-identity="SalesOrderID" 
             RevisionNumber="1"
             OrderDate="2001-07-01 00:00:00.000"
             DueDate="2001-07-13 00:00:00.000"
             OnlineOrderFlag="0"
             CustomerID="676"
             ContactID="378"
             BillToAddressID="985"
             ShipToAddressID="985"
             ShipMethodID="5"
             SubTotal="24643.9362"
             TaxAmt="1971.5149"
             Freight="616.0984"
             rowguid="00009999-8888-7777-6666-554433221100"
             ModifiedDate="2001-07-08 00:00:00.000" />
    </updg:after>
  </updg:sync>
</ROOT>

<ROOT xmlns:updg="urn:schemas-microsoft-com:xml-updategram">
  <updg:sync mapping-schema='XSD-ElementHavingNameSpace.xml'>
    <updg:after>
       <x:Order  xmlns:x="https://server/xyz/schemas/"
             updg:at-identity="SalesOrderID" 
             RevisionNumber="1"
             OrderDate="2001-07-01 00:00:00.000"
             DueDate="2001-07-13 00:00:00.000"
             OnlineOrderFlag="0"
             CustomerID="676"
             ContactID="378"
             BillToAddressID="985"
             ShipToAddressID="985"
             ShipMethodID="5"
             SubTotal="24643.9362"
             TaxAmt="1971.5149"
             Freight="616.0984"
             rowguid="00009999-8888-7777-6666-554433221100"
             ModifiedDate="2001-07-08 00:00:00.000" />
    </updg:after>
  </updg:sync>
</ROOT>

Bu durumda, şema ayrıca ad alanı bu şemada gösterildiği gibi bildirmeniz gerekir:

Aşağıdaki şema (xsd ElementHavingNamespace.xml) karşılık gelen öğe ve özniteliklerin nasıl bildirilmelidir gösterir.

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
     xmlns:dt="urn:schemas-microsoft-com:datatypes" 
     xmlns:sql="urn:schemas-microsoft-com:mapping-schema"  
     xmlns:x="https://server/xyz/schemas/" 
     targetNamespace="https://server/xyz/schemas/" >
  <xsd:element name="Order" sql:relation="Sales.SalesOrderHeader" type="x:Order_type"/>
  <xsd:complexType name="Order_type">
    <xsd:attribute name="SalesOrderID"  type="xsd:ID"/>
    <xsd:attribute name="RevisionNumber" type="xsd:unsignedByte"/>
    <xsd:attribute name="OrderDate" type="xsd:dateTime"/>
    <xsd:attribute name="DueDate" type="xsd:dateTime"/>
    <xsd:attribute name="ShipDate" type="xsd:dateTime"/>
    <xsd:attribute name="Status" type="xsd:unsignedByte"/>
    <xsd:attribute name="OnlineOrderFlag" type="xsd:boolean"/>
    <xsd:attribute name="SalesOrderNumber" type="xsd:string"/>
    <xsd:attribute name="PurchaseOrderNumber" type="xsd:string"/>
    <xsd:attribute name="AccountNumber" type="xsd:string"/>
    <xsd:attribute name="CustomerID" type="xsd:int"/>
    <xsd:attribute name="ContactID" type="xsd:int"/>
    <xsd:attribute name="SalesPersonID" type="xsd:int"/>
    <xsd:attribute name="TerritoryID" type="xsd:int"/>
    <xsd:attribute name="BillToAddressID" type="xsd:int"/>
    <xsd:attribute name="ShipToAddressID" type="xsd:int"/>
    <xsd:attribute name="ShipMethodID" type="xsd:int"/>
    <xsd:attribute name="CreditCardID" type="xsd:int"/>
    <xsd:attribute name="CreditCardApprovalCode" type="xsd:string"/>
    <xsd:attribute name="CurrencyRateID" type="xsd:int"/>
    <xsd:attribute name="SubTotal" type="xsd:decimal"/>
    <xsd:attribute name="TaxAmt" type="xsd:decimal"/>
    <xsd:attribute name="Freight" type="xsd:decimal"/>
    <xsd:attribute name="TotalDue" type="xsd:decimal"/>
    <xsd:attribute name="Comment" type="xsd:string"/>
    <xsd:attribute name="rowguid" type="xsd:string"/>
    <xsd:attribute name="ModifiedDate" type="xsd:dateTime"/>
  </xsd:complexType>
</xsd:schema>

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
     xmlns:dt="urn:schemas-microsoft-com:datatypes" 
     xmlns:sql="urn:schemas-microsoft-com:mapping-schema"  
     xmlns:x="https://server/xyz/schemas/" 
     targetNamespace="https://server/xyz/schemas/" >
  <xsd:element name="Order" sql:relation="Sales.SalesOrderHeader" type="x:Order_type"/>
  <xsd:complexType name="Order_type">
    <xsd:attribute name="SalesOrderID"  type="xsd:ID"/>
    <xsd:attribute name="RevisionNumber" type="xsd:unsignedByte"/>
    <xsd:attribute name="OrderDate" type="xsd:dateTime"/>
    <xsd:attribute name="DueDate" type="xsd:dateTime"/>
    <xsd:attribute name="ShipDate" type="xsd:dateTime"/>
    <xsd:attribute name="Status" type="xsd:unsignedByte"/>
    <xsd:attribute name="OnlineOrderFlag" type="xsd:boolean"/>
    <xsd:attribute name="SalesOrderNumber" type="xsd:string"/>
    <xsd:attribute name="PurchaseOrderNumber" type="xsd:string"/>
    <xsd:attribute name="AccountNumber" type="xsd:string"/>
    <xsd:attribute name="CustomerID" type="xsd:int"/>
    <xsd:attribute name="ContactID" type="xsd:int"/>
    <xsd:attribute name="SalesPersonID" type="xsd:int"/>
    <xsd:attribute name="TerritoryID" type="xsd:int"/>
    <xsd:attribute name="BillToAddressID" type="xsd:int"/>
    <xsd:attribute name="ShipToAddressID" type="xsd:int"/>
    <xsd:attribute name="ShipMethodID" type="xsd:int"/>
    <xsd:attribute name="CreditCardID" type="xsd:int"/>
    <xsd:attribute name="CreditCardApprovalCode" type="xsd:string"/>
    <xsd:attribute name="CurrencyRateID" type="xsd:int"/>
    <xsd:attribute name="SubTotal" type="xsd:decimal"/>
    <xsd:attribute name="TaxAmt" type="xsd:decimal"/>
    <xsd:attribute name="Freight" type="xsd:decimal"/>
    <xsd:attribute name="TotalDue" type="xsd:decimal"/>
    <xsd:attribute name="Comment" type="xsd:string"/>
    <xsd:attribute name="rowguid" type="xsd:string"/>
    <xsd:attribute name="ModifiedDate" type="xsd:dateTime"/>
  </xsd:complexType>
</xsd:schema>

Updategram sınamak için

  1. Yukarıdaki şema kopyalayıp bir metin dosyasına yapıştırın. xsd ElementHavingNamespace.xml kaydedin.

  2. Yukarıdaki updategram kopyalayıp bir metin dosyasına yapıştırın. Updategram ElementHavingNamespace.xml xsd ElementHavingnamespace.xml kaydetmek için kullanılan aynı klasörde dosyayı kaydedin.

  3. Oluşturun ve sqlxml 4.0 sınama komut dosyası (Sqlxml4test.vbs) the updategram yürütmek için kullanın.

    Daha fazla bilgi için, bkz. ado sqlxml yürütme kullanarak 4.0 sorgular.

I.Sütun ekleme verileri bir xml veri türü

xmlVeri türü tanıtıldı SQL Server 2005. Updategrams yerleştirin ve depolanan verileri güncelleştirmek için kullanabileceğiniz xmlveri türü aşağıdaki hükümler içeren sütunlar:

  • xmlSütun varolan satır tanımlamak için kullanılamaz. Bu nedenle, bunun içinde eklenemez updg:beforebölümünde bir updategram.

  • Kapsamı içine eklenen xml parçası olan ad xmlsütun korunmuş ve kendi ad alanı bildirimi eklenen parçasının üst öğesine eklenir.

Örneğin, aşağıdaki updategram (SampleUpdateGram.xml), de <Desc > Üretim ProductDescription sütun öğesi güncellemeleri>productModel tablo AdventureWorks2012 örnek veritabanı. Bu updategram sonucu, ProductDescription sütun xml içeriğini xml içeriğini güncelleştirme olmasıdır <Desc > öğesi.

<ROOT xmlns:updg="urn:schemas-microsoft-com:xml-updategram">
    <updg:sync mapping-schema="SampleSchema.xml" >
       <updg:before>
<ProductModel ProductModelID="19">
   <Name>Mountain-100</Name>
</ProductModel>
    </updg:before>
    <updg:after>
 <ProductModel>
    <Name>Mountain-100</Name>
    <Desc><?xml-stylesheet href="ProductDescription.xsl" type="text/xsl"?>
        <p1:ProductDescription xmlns:p1="https://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ProductModelDescription" 
              xmlns:wm="https://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ProductModelWarrAndMain" 
              xmlns:wf="https://www.adventure-works.com/schemas/OtherFeatures" 
              xmlns:html="http://www.w3.org/1999/xhtml" 
              >
  <p1:Summary>
     <html:p>Insert Example</html:p>
  </p1:Summary>
  <p1:Manufacturer>
    <p1:Name>AdventureWorks</p1:Name>
    <p1:Copyright>2002</p1:Copyright>
    <p1:ProductURL>HTTP://www.Adventure-works.com</p1:ProductURL>
  </p1:Manufacturer>
  <p1:Features>These are the product highlights. 
    <wm:Warranty>
       <wm:WarrantyPeriod>3 years</wm:WarrantyPeriod>
       <wm:Description>parts and labor</wm:Description>
    </wm:Warranty>
    <wm:Maintenance>
       <wm:NoOfYears>10 years</wm:NoOfYears>
       <wm:Description>maintenance contract available through your dealer or any AdventureWorks retail store.</wm:Description>
    </wm:Maintenance>
    <wf:wheel>High performance wheels.</wf:wheel>
    <wf:saddle>
      <html:i>Anatomic design</html:i> and made from durable leather for a full-day of riding in comfort.</wf:saddle>
    <wf:pedal>
       <html:b>Top-of-the-line</html:b> clipless pedals with adjustable tension.</wf:pedal>
    <wf:BikeFrame>Each frame is hand-crafted in our Bothell facility to the optimum diameter and wall-thickness required of a premium mountain frame. The heat-treated welded aluminum frame has a larger diameter tube that absorbs the bumps.</wf:BikeFrame>
    <wf:crankset> Triple crankset; alumunim crank arm; flawless shifting. </wf:crankset>
   </p1:Features>
   <p1:Picture>
      <p1:Angle>front</p1:Angle>
      <p1:Size>small</p1:Size>
      <p1:ProductPhotoID>118</p1:ProductPhotoID>
   </p1:Picture>
   <p1:Specifications> These are the product specifications.
     <Material>Almuminum Alloy</Material>
     <Color>Available in most colors</Color>
     <ProductLine>Mountain bike</ProductLine>
     <Style>Unisex</Style>
     <RiderExperience>Advanced to Professional riders</RiderExperience>
   </p1:Specifications>
  </p1:ProductDescription>
 </Desc>
      </ProductModel>
    </updg:after>
  </updg:sync>
</ROOT>

<ROOT xmlns:updg="urn:schemas-microsoft-com:xml-updategram">
    <updg:sync mapping-schema="SampleSchema.xml" >
       <updg:before>
<ProductModel ProductModelID="19">
   <Name>Mountain-100</Name>
</ProductModel>
    </updg:before>
    <updg:after>
 <ProductModel>
    <Name>Mountain-100</Name>
    <Desc><?xml-stylesheet href="ProductDescription.xsl" type="text/xsl"?>
        <p1:ProductDescription xmlns:p1="https://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ProductModelDescription" 
              xmlns:wm="https://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ProductModelWarrAndMain" 
              xmlns:wf="https://www.adventure-works.com/schemas/OtherFeatures" 
              xmlns:html="http://www.w3.org/1999/xhtml" 
              >
  <p1:Summary>
     <html:p>Insert Example</html:p>
  </p1:Summary>
  <p1:Manufacturer>
    <p1:Name>AdventureWorks</p1:Name>
    <p1:Copyright>2002</p1:Copyright>
    <p1:ProductURL>HTTP://www.Adventure-works.com</p1:ProductURL>
  </p1:Manufacturer>
  <p1:Features>These are the product highlights. 
    <wm:Warranty>
       <wm:WarrantyPeriod>3 years</wm:WarrantyPeriod>
       <wm:Description>parts and labor</wm:Description>
    </wm:Warranty>
    <wm:Maintenance>
       <wm:NoOfYears>10 years</wm:NoOfYears>
       <wm:Description>maintenance contract available through your dealer or any AdventureWorks retail store.</wm:Description>
    </wm:Maintenance>
    <wf:wheel>High performance wheels.</wf:wheel>
    <wf:saddle>
      <html:i>Anatomic design</html:i> and made from durable leather for a full-day of riding in comfort.</wf:saddle>
    <wf:pedal>
       <html:b>Top-of-the-line</html:b> clipless pedals with adjustable tension.</wf:pedal>
    <wf:BikeFrame>Each frame is hand-crafted in our Bothell facility to the optimum diameter and wall-thickness required of a premium mountain frame. The heat-treated welded aluminum frame has a larger diameter tube that absorbs the bumps.</wf:BikeFrame>
    <wf:crankset> Triple crankset; alumunim crank arm; flawless shifting. </wf:crankset>
   </p1:Features>
   <p1:Picture>
      <p1:Angle>front</p1:Angle>
      <p1:Size>small</p1:Size>
      <p1:ProductPhotoID>118</p1:ProductPhotoID>
   </p1:Picture>
   <p1:Specifications> These are the product specifications.
     <Material>Almuminum Alloy</Material>
     <Color>Available in most colors</Color>
     <ProductLine>Mountain bike</ProductLine>
     <Style>Unisex</Style>
     <RiderExperience>Advanced to Professional riders</RiderExperience>
   </p1:Specifications>
  </p1:ProductDescription>
 </Desc>
      </ProductModel>
    </updg:after>
  </updg:sync>
</ROOT>

Updategram aşağıdaki açıklama eklediğiniz xsd şeması için (SampleSchema.xml) ifade eder.

<?xml version="1.0" encoding="utf-8" ?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
           xmlns:sql="urn:schemas-microsoft-com:mapping-schema"
           xmlns="https://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ProductModelDescription"> 
  <xsd:element name="ProductModel"  sql:relation="Production.ProductModel" >
     <xsd:complexType>
       <xsd:sequence>
          <xsd:element name="Name" type="xsd:string"></xsd:element>
          <xsd:element name="Desc" sql:field="CatalogDescription" sql:datatype="xml">
           <xsd:complexType>
            <xsd:sequence>
              <xsd:element name="ProductDescription">
                 <xsd:complexType>
                   <xsd:sequence>
                     <xsd:element name="Summary" type="xsd:anyType">
                     </xsd:element>
                   </xsd:sequence>
                 </xsd:complexType>
              </xsd:element>
            </xsd:sequence>
           </xsd:complexType>
          </xsd:element> 
       </xsd:sequence>
       <xsd:attribute name="ProductModelID" sql:field="ProductModelID"/>
     </xsd:complexType>
  </xsd:element>
</xsd:schema>

<?xml version="1.0" encoding="utf-8" ?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
           xmlns:sql="urn:schemas-microsoft-com:mapping-schema"
           xmlns="https://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ProductModelDescription"> 
  <xsd:element name="ProductModel"  sql:relation="Production.ProductModel" >
     <xsd:complexType>
       <xsd:sequence>
          <xsd:element name="Name" type="xsd:string"></xsd:element>
          <xsd:element name="Desc" sql:field="CatalogDescription" sql:datatype="xml">
           <xsd:complexType>
            <xsd:sequence>
              <xsd:element name="ProductDescription">
                 <xsd:complexType>
                   <xsd:sequence>
                     <xsd:element name="Summary" type="xsd:anyType">
                     </xsd:element>
                   </xsd:sequence>
                 </xsd:complexType>
              </xsd:element>
            </xsd:sequence>
           </xsd:complexType>
          </xsd:element> 
       </xsd:sequence>
       <xsd:attribute name="ProductModelID" sql:field="ProductModelID"/>
     </xsd:complexType>
  </xsd:element>
</xsd:schema>

Updategram sınamak için

  1. Yukarıdaki şema kopyalayıp bir metin dosyasına yapıştırın. xsd-SampleSchema.xml kaydedin.

    [!NOT]

    Varsayılan eşleme updategrams desteklediği için başlangıç ve bitiş tanımlamak için hiçbir şekilde xmlveri türü. Bu etkili bir eşleme şeması eklemek veya tabloları ile güncelleştirme gerekli olduğunu gösterir xmlveri türü sütun. Bir şema sağlanmadı sqlxml sütunları tablodan eksik olduğunu belirten bir hata iletisi döndürür.

  2. Yukarıdaki updategram kopyalayıp bir metin dosyasına yapıştırın. SampleUpdategram.xml SampleSchema.xml kaydetmek için kullanılan aynı klasörde dosyayı kaydedin.

  3. Oluşturun ve sqlxml 4.0 sınama komut dosyası (Sqlxml4test.vbs) the updategram yürütmek için kullanın.

    Daha fazla bilgi için, bkz. ado sqlxml yürütme kullanarak 4.0 sorgular.

Ayrıca bkz.

Başvuru

Updategram Güvenlik etkenleri (sqlxml 4.0)