Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
gäller för:SQL Server
Azure SQL Database
När poster infogas i en databas från ett XML-dokument med hjälp av Transact-SQL OPENXML-funktionen kan all oanvänd data från källdokumentet i XML lagras i en kolumn. När du hämtar data från en databas med hjälp av annoterade scheman kan du ange attributet sql:overflow-field för att identifiera kolumnen i tabellen där överflödesdata lagras. attributet sql:overflow-field kan specificeras på <element>.
Denna data hämtas sedan på följande sätt:
Attribut som lagras i överflödeskolumnen läggs till i elementet som innehåller sql:overflow-fältannoteringen .
Barnelementen och deras efterföljare, lagrade i överflödeskolumnen i databasen, läggs till som barnelement enligt det innehåll som uttryckligen anges i schemat. (Ingen ordning bevaras.)
Examples
För att skapa arbetsprover med hjälp av följande exempel måste du uppfylla vissa krav. För mer information, se Krav för att köra SQLXML-exempel.
A. Specificering av sql:overflow-fält för ett element
Detta exempel antar att följande skript har körts så att en tabell med namnet Customers2 finns i tempdb-databasen:
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
Dessutom måste du skapa en virtuell katalog för tempdb-databasen – och en mall med virtuellt namn av malltyp som heter "template".
I följande exempel hämtar mappningsschemat den oanvända data som lagras i kolumnen AddressOverflow i Customers2-tabellen:
<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>
För att testa en exempel-XPath-fråga mot schemat
Kopiera schemakoden ovan och klistra in den i en textfil. Spara filen som Overflow.xml.
Kopiera följande mall och klistra in den i en textfil. Spara filen som OverflowT.xml i samma katalog där du sparade Overflow.xml. Frågan i mallen väljer posterna i Customers2-tabellen.
<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql"> <sql:xpath-query mapping-schema="Overflow.xml"> /Customers2 </sql:xpath-query> </ROOT>Den katalogväg som anges för mappningsschemat (Overflow.xml) är relativ till katalogen där mallen sparas. En absolut väg kan också specificeras, till exempel:
mapping-schema="C:\SqlXmlTest\Overflow.xml"Skapa och använd SQLXML 4.0 Test Script (Sqlxml4test.vbs) för att köra mallen.
Mer information finns i Använda ADO för att köra SQLXML 4.0-frågor.
Här är resultatuppsättningen:
<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>