¿Alguien ha logrado crear un CTE en SQL Server's T-SQL que también incluye una declaración WITH XMLNAMESPACES
?Combine CTE "WITH" y "WITH XMLNAMESPACES ...." en SQL Server
Parece ambos WITH
palabras clave insisten en ser el "primero en el lote de T-SQL", y que en realidad no funciona ....
Traté:
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 trabajo (errores de sintaxis)
Msg 156, nivel 15, estado 1, línea 2
sintaxis incorrecta cerca de la palabra clave 'con'.
Msg 319, nivel 15, estado 1, línea 2 Sintaxis incorrecta cerca de la palabra clave 'con'. Si esta instrucción es una expresión de tabla común , una cláusula xmlnamespaces o una cláusula de contexto de seguimiento , la instrucción anterior debe terminarse con un punto y coma .
así que traté anteponiendo la segunda WITH
con un punto y coma:
WITH XMLNAMESPACES('http://schemas.myself.com/SomeSchema' as ns)
;WITH CTEQuery AS
(
SELECT (list of fields)
FROM dbo.MyTable
WHERE (conditions)
)
SELECT * FROM CTEQuery
y tiene esto:
Msg 102, nivel 15, estado 1, línea 2
sintaxis incorrecta cerca ';'
y luego he intentado poner el WITH XMLNAMESPACES
en el CTE:
WITH CTEQuery AS
(
WITH XMLNAMESPACES('http://schemas.myself.com/SomeSchema' as ns)
SELECT (list of fields)
FROM dbo.MyTable
WHERE (conditions)
)
SELECT * FROM CTEQuery
y obtuve esto:
Msg 156, nivel 15, estado 1, línea 4
sintaxis incorrecta cerca la palabra clave 'CON'.
Msg 319, nivel 15, estado 1, línea 4
Sintaxis incorrecta cerca de palabra clave 'con'. Si esta instrucción es una expresión de tabla común , una cláusula xmlnamespaces o una cláusula de contexto de seguimiento , la instrucción anterior debe terminarse con un punto y coma .
Msg 102, nivel 15, estado 1, línea 21
Sintaxis incorrecta cerca de ')'.
Entonces, ¿cómo diablos hago esto?
Y 'XMLNAMESPACES' debe definirse primero, antes de cualquier' CTEs'. – Gabrielius