Кто-нибудь удалось создать CTE в SQL-сервере SQL-SQL, который также включает объявление WITH XMLNAMESPACES
?Объединение CTE «WITH» и «WITH XMLNAMESPACES ....» в SQL Server
кажется оба 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
Didn» т работа :-((синтаксические ошибки)
Msg 156, Level 15, State 1, Line 2
Неправильный синтаксис около ключевого слова 'с'.
Msg 319, уровень 15, состояние 1, строка 2
Неправильный синтаксис рядом с ключевым словом 'with'. Если этот оператор является общим табличным выражением , предложение 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
в КТР:
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, Level 15, State 1, Line 4
Неправильный синтаксис около ключевое слово 'WITH'.
Msg 319, Level 15, State 1, Line 4
Неправильный синтаксис около ключевого слова 'с'. Если этот оператор является общим табличным выражением , предложение xmlnamespaces или изменение фразы контекста отслеживания, предыдущий оператор должен быть прерван точкой с запятой .
Msg 102, Level 15, State 1, Line 21
Неверный синтаксис рядом с ')'.
Так как, черт возьми, я это делаю ??
И 'XMLNAMESPACES' должны быть определены сначала перед любыми« CTE ». – Gabrielius