Pobieranie niewykorzystana danych przy użyciu sql:overflow-pole (schematu XDR)
Ważne: |
|---|
Ten temat jest dołączane jako odniesienia dla starszych aplikacji.Żadna praca przyszłego rozwoju są wykonywane z tej funkcji.Unikaj używania tej funkcji w nowych prac rozwojowych.Zamiast tego użyj adnotacjami schematów XSD tworzenia widoków XML.Aby uzyskać więcej informacji, zobacz Wprowadzenie do adnotacjami schematów XSD (SQLXML 4.0).Można przekonwertować istniejące schematy XDR adnotacjami schematów XSD.Aby uzyskać więcej informacji, zobacz Konwertowanie adnotacjami schematy XDR równoważne schematów XSD (SQLXML 4.0). |
Gdy rekordy są wstawiane w bazie danych z dokumentem XML przy użyciu OPENXML niewykorzystana dane z źródło dokument XML mogą być przechowywane kolumna.Pobierania danych z bazy danych za pomocą schematów adnotacjami, sql:overflow-field może być określony atrybut zidentyfikować kolumna w tabela, w którym są przechowywane dane przepełnienie.
Te dane są następnie pobierane w następujący sposób:
Atrybuty przechowywane kolumna przepełnienia są dodawane do elementu zawierającego sql:overflow-field adnotacji.
Podelementy i ich potomkami przechowywane kolumna przepełnienie w bazie danych są dodawane jako podelementy po zawartości, która jest wyraźnie określona w schemacie (zachowane nie zamówienie).
Przykłady
Aby utworzyć próbki pracy przy użyciu poniższych przykładach, musi spełniać określone wymagania.Aby uzyskać więcej informacji, zobacz Wymagania dotyczące uruchamianie przykładów SQLXML.
A.Określ sql:overflow-dla pole <element ElementType> w schematu XDR
W przykładzie założono, istnieje w tej tabela w bazie danych tempdb:
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
W tym przykładzie schematu mapowanie pobiera niewykorzystana dane przechowywane kolumna AddressOverflow w tabela Customers2.sql:overflow-field Atrybut jest określony na <element ElementType>.
<?xml version="1.0" ?>
<Schema xmlns="urn:schemas-microsoft-com:xml-data"
xmlns:dt="urn:schemas-microsoft-com:datatypes"
xmlns:sql="urn:schemas-microsoft-com:xml-sql">
<ElementType name="Customers2" sql:overflow-field="AddressOverflow" >
<AttributeType name="CustomerID" />
<AttributeType name="ContactName" />
<attribute type="CustomerID" />
<attribute type="ContactName"/>
</ElementType>
</Schema>
Do badania próbki kwerendę XPath względem schematu
Kod schematu skopiować i wkleić go do pliku tekstowego.Zapisz plik jako OverflowXdr.xml.
Skopiuj następujący szablon i wkleić go do pliku tekstowego.Zapisz plik jako OverflowXdrT.xml w tym samym katalogu, w którym zapisano OverflowXdr.xml.
<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql"> <sql:xpath-query mapping-schema="OverflowXdr.xml"> Customers2 </sql:xpath-query> </ROOT>Ścieżka katalogu określonego dla mapowania schematu (OverflowXdr.xml) jest katalog, w którym zapisany szablon.Ścieżka bezwzględna również można określić, na przykład:
mapping-schema="C:\MyDir\OverflowXdr.xml"Tworzenie i używanie szablon wykonać skryptu testu 4.0 SQLXML (Sqlxml4test.vbs).
Aby uzyskać więcej informacji, zobacz Przy użyciu ADO SQLXML wykonanie kwerendy 4.0.
Zestaw wyników jest następujący:
<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>
Ważne: