War diese Seite hilfreich?
Ihr Feedback ist uns wichtig. Teilen Sie uns Ihre Meinung mit.
Weiteres Feedback?
1500 verbleibende Zeichen
Exportieren (0) Drucken
Alle erweitern
Dieser Artikel wurde manuell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen. Weitere Informationen
Übersetzung
Original

Abrufen und Abfragen von XML-Daten

Themenstatus: Einige Informationen in diesem Thema sind vorläufig und können in zukünftigen Versionen geändert werden. In den Vorabinformationen werden neue Funktionen oder Änderungen an vorhandenen Funktionen in Microsoft SQL Server 2014 beschrieben.

In diesem Thema werden die Abfrageoptionen beschrieben, die für die Abfrage von XML-Daten anzugeben sind. Es beschreibt auch die Teile der XML-Instanzen, die nicht beibehalten werden, wenn sie in Datenbanken gespeichert werden.

SQL Server behält den Inhalt der XML-Instanz bei. Allerdings werden die Aspekte der XML-Instanz nicht beibehalten, die im Hinblick auf das XML-Datenmodell als nicht signifikant betrachtet werden. Das bedeutet, dass eine abgerufene XML-Instanz möglicherweise nicht mit der Instanz identisch ist, die auf dem Server gespeichert wurde, aber die gleichen Informationen enthält.

XML-Deklaration

Die XML-Deklaration in einer Instanz wird nicht beibehalten, wenn die Instanz in der Datenbank gespeichert wird. Zum Beispiel:

CREATE TABLE T1 (Col1 int primary key, Col2 xml)
GO
INSERT INTO T1 values (1, '<?xml version="1.0" encoding="windows-1252" ?><doc></doc>')
GO
SELECT Col2
FROM T1

Das Ergebnis ist <doc/>.

Die XML-Deklaration, z. B. <?xml version='1.0'?>, wird nicht beibehalten, wenn die XML-Daten in einer xml-Datentypinstanz gespeichert werden. Dies ist programmbedingt. Die XML-Deklaration (<?xml ... ?>) und die Attribute (Version/Codierung/Eigenständigkeit) gehen bei der Konvertierung in den Typ xml verloren. Die XML-Deklaration wird als Direktive für den XML-Parser behandelt. Die XML-Daten werden intern als ucs-2 gespeichert. Alle anderen PIs in der XML-Instanz werden beibehalten.

[NACH OBEN]

Reihenfolge von Attributen

Die Reihenfolge der Attribute in einer XML-Instanz wird nicht erhalten. Bei einer Abfrage der in der xml-Typspalte gespeicherten XML-Instanz kann die Reihenfolge der Attribute in der resultierenden XML von der der ursprünglichen XML-Instanz abweichen.

[NACH OBEN]

Anführungszeichen um Attributwerte

Einfache Anführungszeichen und doppelte Anführungszeichen um Attributwerte werden nicht erhalten. Die Attributwerte werden in der Datenbank als Name/Wert-Paar gespeichert. Die Anführungszeichen werden nicht gespeichert. Wenn eine XQuery-Abfrage für eine XML-Instanz ausgeführt wird, wird die resultierende XML mit doppelten Anführungszeichen um die Attributwerte serialisiert.

DECLARE @x xml
-- Use double quotation marks.
SET @x = '<root a="1" />'
SELECT @x
GO
DECLARE @x xml
-- Use single quotation marks.
SET @x = '<root a=''1'' />'
SELECT @x
GO

Für beide Abfragen wird Folgendes zurückgeben: = <root a="1" />.

[NACH OBEN]

Namespacepräfixe

Namespacepräfixe werden nicht erhalten. Wenn Sie eine XQuery-Abfrage für eine xml-Typspalte angeben, werden vom serialisierten XML-Ergebnis möglicherweise andere Namespacepräfixe zurückgeben.

DECLARE @x xml
SET @x = '<ns1:root xmlns:ns1="abc" xmlns:ns2="abc">
            <ns2:SomeElement/>
          </ns1:root>'
SELECT @x
SELECT @x.query('/*')
GO

Das Namespacepräfix des Ergebnisses kann unterschiedlich sein. Zum Beispiel:

<p1:root xmlns:p1="abc"><p1:SomeElement/></p1:root>

[NACH OBEN]

Beim Abfragen von Spalten oder Variablen des xml-Datentyps mithilfe von xml-Datentypmethoden müssen die folgenden Optionen wie dargestellt festgelegt werden.

SET-Optionen

Erforderliche Werte

ANSI_NULLS

ON

ANSI_PADDING

ON

ANSI_WARNINGS

ON

ARITHABORT

ON

CONCAT_NULL_YIELDS_NULL

ON

NUMERIC_ROUNDABORT

OFF

QUOTED_IDENTIFIER

ON

Wenn die Optionen nicht wie dargestellt festgelegt sind, schlagen Abfragen und Änderungen für xml-Datentypmethoden fehl.

[NACH OBEN]

Community-Beiträge

Anzeigen:
© 2015 Microsoft