Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 CTE+openxml=>A severe error occurred on the current command.  [new]
Сон Веры Павловны
Member

Откуда:
Сообщений: 6201
Дано: MSSQL 2005 - 9.00.5057.00
use stuff
go
declare
  @xml nvarchar(max),
  @x_h int;
set @xml=N'<root><item n="1"/><item n="2"/><item n="3"/></root>';
exec sp_xml_preparedocument @x_h out, @xml;
;with cte0 as (
  select * from openxml(@x_h,'/root/item', 1) with stuff.dbo.t_sequence
), cte1 as (
  select * from cte0 e
  join master..spt_values v on v.number=e.n and v.type='P'
)
select * from cte1;
exec sp_xml_removedocument @x_h;

при выполнении дает такой вот результат:

Msg 0, Level 11, State 0, Line 0
A severe error occurred on the current command. The results, if any, should be discarded.
Msg 0, Level 20, State 0, Line 0
A severe error occurred on the current command. The results, if any, should be discarded.

В документации не нашел ничего по этому поводу; в гугле прочитал совет, увидев подобное, сделать DBCC CHECKDB ('database_name', REPAIR_ALLOW_DATA_LOSS) в single user mode, относительно чего у меня есть сомнения. В чем тут вообще дело, и как подобное лечить?
Если сделать выборку из первого CTE (cte0), то всё отрабатывает нормально, но в реальной ситуации xml хоть и не большой по количеству узлов, зато содержит достаточно много тэгов, и переливать всё это в промежуточную табличную переменную как-то не видится целесообразным.
P.S. Совет обновить сервер не принимается - это вне моей компетенции, увы.
19 сен 12, 09:32    [13186328]     Ответить | Цитировать Сообщить модератору
 Re: CTE+openxml=>A severe error occurred on the current command.  [new]
Glory
Member

Откуда:
Сообщений: 104751
Сон Веры Павловны
при выполнении дает такой вот результат:

Именно при выполнении ? А предварительный план генерируется ?
19 сен 12, 09:37    [13186366]     Ответить | Цитировать Сообщить модератору
 Re: CTE+openxml=>A severe error occurred on the current command.  [new]
Сон Веры Павловны
Member

Откуда:
Сообщений: 6201
Glory,

нет, не генерируется.
И да, проверил на локальном 2008 R2 SP2 (developer edition, 10.50.4260.0) - все проходит гладко.
И все работает на 2005, если в with для openxml явно описать поля.
Баг?
19 сен 12, 09:43    [13186416]     Ответить | Цитировать Сообщить модератору
 Re: CTE+openxml=>A severe error occurred on the current command.  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6724
Что-то не удивительно.
Естественно баг.
Мб. в следующем SP пофиксено, надо искать (ходя с ходу нет, может в 2008 случайно пофиксили).
19 сен 12, 11:03    [13187073]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить