Кто-нибудь смог создать CTE в SQL Server T-SQL, который также включает объявление WITH XMLNAMESPACES
?
Кажется, что ключевые слова WITH
настаивают на том, чтобы быть "первым в партии T-SQL", и это не работает.
Я пробовал:
WITH XMLNAMESPACES('http://schemas.myself.com/SomeSchema' as ns)
WITH CTEQuery AS
(
SELECT (list of fields)
FROM dbo.MyTable
WHERE (conditions)
)
SELECT * FROM CTEQuery
Не работает:-( (синтаксические ошибки)
Msg 156, уровень 15, состояние 1, строка 2
Неверный синтаксис рядом с ключевым словом "WITH".
Msg 319, уровень 15, состояние 1, строка 2
Неправильный синтаксис рядом с ключевое слово 'с'. Если это утверждение является общее табличное выражение, Предложение xmlnamespaces или изменение контекст контекста отслеживания, предыдущий должно быть прекращено с помощью точка с запятой.
Поэтому я попытался добавить второй WITH
с точкой с запятой:
WITH XMLNAMESPACES('http://schemas.myself.com/SomeSchema' as ns)
;WITH CTEQuery AS
(
SELECT (list of fields)
FROM dbo.MyTable
WHERE (conditions)
)
SELECT * FROM CTEQuery
и получил следующее:
Msg 102, уровень 15, состояние 1, строка 2
Неверный синтаксис рядом с ';'.
а затем я попытался поместить WITH XMLNAMESPACES
в 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
и получил следующее:
Msg 156, уровень 15, состояние 1, строка 4
Неправильный синтаксис рядом с ключевым словом 'С'.
Msg 319, уровень 15, состояние 1, строка 4
Неправильный синтаксис рядом с ключевое слово 'с'. Если это утверждение является общее табличное выражение, Предложение xmlnamespaces или изменение контекст контекста отслеживания, предыдущий должно быть прекращено с помощью точка с запятой.
Msg 102, уровень 15, состояние 1, строка 21
Неверный синтаксис рядом с ')'.
Итак, как я это делаю?