Hat jemand geschafft, ein CTE in SQL Server T-SQL zu erstellen, die auch eine WITH XMLNAMESPACES
Deklaration enthält?Kombinieren CTE "WITH" und ein "WITH XMLNAMESPACES ...." in SQL Server
Es scheint, beide WITH
Schlüsselwörter bestehen die "erste in der T-SQL-Batch" auf sein, und das funktioniert nicht wirklich ....
Ich habe versucht:
WITH XMLNAMESPACES('http://schemas.myself.com/SomeSchema' as ns)
WITH CTEQuery AS
(
SELECT (list of fields)
FROM dbo.MyTable
WHERE (conditions)
)
SELECT * FROM CTEQuery
Didn‘ t Arbeit :-((Syntaxfehler)
Msg 156, Ebene 15, Status 1, Zeile 2
falsche Syntax nahe dem Schlüsselwort 'MIT'.
Msg 319, Ebene 15, Status 1, Zeile 2
Falsche Syntax in der Nähe des Schlüsselworts 'mit' . Wenn diese Anweisung ein allgemeiner Tabellenausdruck ist, eine xmlnamespaces-Klausel oder eine Änderungs- Tracking-Kontextklausel, muss die vorherige -Anweisung mit einem -Semikolon abgeschlossen werden.
Also versuchte ich die zweite WITH
mit einem Semikolon vorangestellt wird:
WITH XMLNAMESPACES('http://schemas.myself.com/SomeSchema' as ns)
;WITH CTEQuery AS
(
SELECT (list of fields)
FROM dbo.MyTable
WHERE (conditions)
)
SELECT * FROM CTEQuery
und erhielt diese:
Msg 102, Ebene 15, Status 1, Zeile 2
falsche Syntax in der Nähe von ";"
und dann habe ich versucht, die WITH XMLNAMESPACES
in den CTE setzen:
WITH CTEQuery AS
(
WITH XMLNAMESPACES('http://schemas.myself.com/SomeSchema' as ns)
SELECT (list of fields)
FROM dbo.MyTable
WHERE (conditions)
)
SELECT * FROM CTEQuery
und erhielt diese:
Msg 156, Ebene 15, Status 1, Zeile 4
falsche Syntax in der Nähe von das Schlüsselwort 'MIT'.
Msg 319, Ebene 15, Status 1, Zeile 4
Falsche Syntax in der Nähe des Schlüsselwortes 'mit'. Wenn diese Anweisung ein allgemeiner Tabellenausdruck ist, eine xmlnamespaces-Klausel oder eine Änderungs- Tracking-Kontextklausel, muss die vorherige -Anweisung mit einem -Semikolon abgeschlossen werden.
Msg 102, Ebene 15, Status 1, Zeile 21
Falsche Syntax in der Nähe von ')'.
Also wie zum Teufel mache ich das ??
Und 'XMLNAMESPACES' müssen zuerst definiert werden, bevor 'CTEs'. – Gabrielius