SQL Server XML deklarieren Namespace
-
05-07-2019 - |
Frage
Ich mag ein paar Namensraum standardmäßig zur Verfügung haben, wenn eine XQuery in SQL Server 2005 ausgeführt wird, ist das möglich?
Zum Beispiel, ich möchte Folgendes tun:
select * from TableWithXML
where
FieldWithXML.exist(
declare namespace nsp="http://www.example.com/exampleNamespace";
nsp:root/nsp:childnode) = 1
Ohne den Namespace jedes Mal neu deklariert haben, so dass SQL erkennen nsp ohne mich Prolog jedes Mal mit.
Die Gedanken?
Lösung
Die xml
und xsi
Namensräume sind die einzigen vordefinierten Namespaces, die Sie sich nicht erklären müssen. Alle anderen Namespaces müssen explicitally in jeder Abfrage deklariert.
Es gibt zwei Möglichkeiten Namespaces zu deklarieren:
- über die
declare
Anweisung innerhalb der XQuery. - über die WITH XMLNAMESPACES Klausel über die TSQL-Anweisung.
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow