У меня есть следующая таблица (называемая temp1):
+-------+------+------+------+----------------------+
| cntry | col1 | col2 | col3 | ACV Distribution (w) |
+-------+------+------+------+----------------------+
| UK | 100 | 100 | 100 | 0 |
| FR | 100 | 100 | 100 | 0 |
+-------+------+------+------+----------------------+
При выполнении этого оператора:
DECLARE @listStr varchar(MAX);
DECLARE @query varchar(MAX);
drop table if exists temp2 ;
set @liststr = ( select * from temp1 where cntry = 'UK' for xml path('') )
set @query =('SELECT top 10 col1,col2,col3,' + @listStr + ' INTO temp2 FROM temp3' )
execute(@query);
SELECT * FROM temp2 ;
Я получаю эту ошибку:
ОШИБКА: Имя столбца ACV Distribution (w) содержит недопустимый XML-идентификатор, как того требует FOR XML
Я застрял здесь, поскольку не могу изменить имя столбца и должен использовать динамический sql.