Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Şunlar için geçerlidir:SQL Server
Azure SQL Veritabanı
Kayıtlar bir XML belgesinden veritabanına Transact-SQL OPENXML fonksiyonu kullanılarak eklendiğinde, kaynak XML belgesinden tüketilmeyen tüm veriler bir sütunda saklanabilir. Bir veritabanından açıklamalı şemalarla veri aldığınızda, overflow verilerinin saklandığı tablodaki sütunu tanımlamak için sql:overflow-field özniteliğini belirleyebilirsiniz. sql:overflow-field özniteliği, eleman> üzerinde< belirtilebilir.
Bu veriler daha sonra şu şekilde alınır:
Taşma sütununda saklanan nitelikler, sql:overflow-alanı açıklamasını içeren öğeye eklenir.
Veritabanındaki taşma sütununda saklanan alt öğeler ve onların törenleri, şemada açıkça belirtilen içeriğe göre çocuk elemanlar olarak eklenir. (Hiçbir düzen korunmamıştır.)
Örnekler
Aşağıdaki örneklerle çalışma örnekleri oluşturmak için belirli gereksinimleri karşılamanız gerekir. Daha fazla bilgi için Gereksinimler için SQLXML Örnekleri Çalışması için Gereksinimlere bakınız.
A. Bir eleman için sql:overflow-field belirtilmesi
Bu örnek, tempdb veritabanında Customers2 adlı bir tablonun bulunması için aşağıdaki becenin çalıştırıldığını varsayar:
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
Ayrıca, tempdb veritabanı için sanal bir dizin oluşturmanız ve "template" adlı şablon tipli bir şablon sanal adı oluşturmalısınız.
Aşağıdaki örnekte, eşleme şeması Customers2 tablosunun AddressOverflow sütununda saklanan tüketilmemiş verileri alır:
<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>
Örnek XPath sorgusunu şema karşısında test etmek için
Yukarıdaki şema kodunu kopyalayıp metin dosyasına yapıştırın. Dosyayı Overflow.xmlolarak kaydet.
Aşağıdaki şablonu kopyalayın ve bir metin dosyasına yapıştırın. Dosyayı aynı dizinde OverflowT.xml olarak kaydet Overflow.xml. Şablondaki sorgu, Customers2 tablosundaki 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şleme şeması (Overflow.xml) için belirtilen dizin yolu, şablonun kaydedildiği dizine görecelidir. Mutlak bir yol da belirtilebilir, örneğin:
mapping-schema="C:\SqlXmlTest\Overflow.xml"Şablonu çalıştırmak için SQLXML 4.0 Test Script'i (Sqlxml4test.vbs) oluşturun ve kullanın.
Daha fazla bilgi için bkz. SQLXML 4.0 Sorguları Yürütmek için ADO Kullanma.
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>