Модераторы: Akina
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> FOR XML PATH + WITH, не работает 
V
    Опции темы
lv151
Дата 14.10.2014, 14:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 916
Регистрация: 11.2.2008

Репутация: нет
Всего: 2



Код

DECLARE @xml VARCHAR(max) = ''
(
    ;WITH tab1
     AS
     (
         SELECT col1
         FROM table1                
     )
     SELECT * 
     FROM tab1
     FOR XML PATH('item'), ROOT('items')
)

SELECT @xml


Msg 102, Level 15, State 1, Line 3
Incorrect syntax near ';'.
Msg 102, Level 15, State 1, Line 12
Incorrect syntax near ')'.

Возможно ли как-то по другому построить эти выражения?

Это сообщение отредактировал(а) lv151 - 14.10.2014, 14:12
PM MAIL   Вверх
Akina
Дата 14.10.2014, 14:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20570
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 25
Всего: 453



lv151, всегда начинайте вопрос с версии сервера и иных особенностей окружения - это критично.

По сути - как я понимаю, это продолжение попытки навесить голову и хвост к получаемому XML?


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
lv151
Дата 14.10.2014, 15:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 916
Регистрация: 11.2.2008

Репутация: нет
Всего: 2



SQL Server 2008r2.

Цитата(Akina @  14.10.2014,  14:43 Найти цитируемый пост)
По сути - как я понимаю, это продолжение попытки навесить голову и хвост к получаемому XML?

Этот вопрос уже решён ;).
PM MAIL   Вверх
Akina
Дата 14.10.2014, 15:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20570
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 25
Всего: 453



Тогда к чему ЭТО страдание? да ещё с кучей синтаксических ляпов?


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
lv151
Дата 14.10.2014, 16:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 916
Регистрация: 11.2.2008

Репутация: нет
Всего: 2



Цитата(Akina @  14.10.2014,  15:47 Найти цитируемый пост)
Тогда к чему ЭТО страдание? да ещё с кучей синтаксических ляпов?

Выгрузить в XML результат этого запроса.
Это никак не относится к навесить голову и хвост.
PM MAIL   Вверх
Akina
Дата 14.10.2014, 17:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20570
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 25
Всего: 453



Тогда просто сделай не SELECT, а SELECT INTO, а затем выгрузи в файл получившуюся таблицу.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
lv151
Дата 15.10.2014, 08:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 916
Регистрация: 11.2.2008

Репутация: нет
Всего: 2



Да, придётся.
Хотел без временных таблиц.
PM MAIL   Вверх
Akina
Дата 15.10.2014, 08:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20570
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 25
Всего: 453



Трудненько. Всё упирается в отфонарно генерящееся имя поля. Даже create function returns table не помогает.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
lv151
Дата 15.10.2014, 09:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 916
Регистрация: 11.2.2008

Репутация: нет
Всего: 2



Цитата(Akina @  14.10.2014,  17:53 Найти цитируемый пост)
SELECT INTO

Я бы лучше это не использовал, лучше обычный INSERT INTO SELECT.

Это сообщение отредактировал(а) lv151 - 15.10.2014, 09:46
PM MAIL   Вверх
chupachups
Дата 24.12.2014, 12:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 0
Регистрация: 15.10.2008

Репутация: нет
Всего: 1



Код

DECLARE @xml VARCHAR(max) = ''

;WITH tab1 AS
(
    SELECT col1
    FROM table1                
)
SELECT @xml = (SELECT *
FROM tab1
FOR XML PATH('item'), ROOT('items'))

SELECT @xml


Этот ответ добавлен с нового Винграда - http://vingrad.com
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "MS SQL"
Akina

Akina

Запрещается!

Публиковать ссылки и обсуждать взлом чего бы то ни было.

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы составления неспецифических запросов рассматриваются здесь
  • Используйте теги [code=sql][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Zloxa, Akina.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MS SQL Server | Следующая тема »


 




[ Время генерации скрипта: 0.1304 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.