Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Присвоение записей с символами  [new]
NewBie77
Member

Откуда:
Сообщений: 184
Доброго времени суток . Имею временную таблицу

CREATE TABLE #tbl 
		(
		   id int  identity(1,1),
		   object_type int ,
		   object_id nvarchar(50),
		   refl nvarchar(4000)
		)


В таблице записаны данные refl nvarchar(4000) следующим образом :

<prov><CProv><object_type>1</object_type><object_id>152</object_id></CProv></prov>
<prov><CProv><object_type>0</object_type><object_id>150</object_id></CProv></prov>
<prov><CProv><object_type>0</object_type><object_id>156</object_id></CProv></prov>
<prov><CProv><object_type>1</object_type><object_id>172</object_id></CProv></prov>


Теперь пытаюсь записать все данные refl в переменную
declare @val nvarchar(4000)


При попытке записать
select @val = refl from #tbl
выбирает последнюю данную только (<prov><CProv><object_type>1</object_type><object_id>172</object_id></CProv></prov>)

При попытке
set @val = (select refl from #tbl)
выбивает ошибку :

Subquery returned more than 1 value. This is not permitted when the subquery follows =, !=, <, <= , >, >= or when the subquery is used as an expression.

Помогите пожалуйста написать правильный запрос .
25 ноя 13, 15:40    [15186165]     Ответить | Цитировать Сообщить модератору
 Re: Присвоение записей с символами  [new]
Glory
Member

Откуда:
Сообщений: 104760
NewBie77
Помогите пожалуйста написать правильный запрос .

Что непонятно из сообщения об ошибке ?
25 ноя 13, 15:42    [15186187]     Ответить | Цитировать Сообщить модератору
 Re: Присвоение записей с символами  [new]
NewBie77
Member

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

хочу записать все данные ref из таблицы #tbl в @val
25 ноя 13, 15:45    [15186209]     Ответить | Цитировать Сообщить модератору
 Re: Присвоение записей с символами  [new]
WarAnt
Member

Откуда: Питер
Сообщений: 2421
NewBie77,

Интересно, а в каком языке программирования вот это "@val = refl" может являеться инкрементом или конкатенацией?

Смотрите FAQ, там есть ответ на ваш вопрос
25 ноя 13, 15:51    [15186240]     Ответить | Цитировать Сообщить модератору
 Re: Присвоение записей с символами  [new]
Glory
Member

Откуда:
Сообщений: 104760
NewBie77
хочу записать все данные ref из таблицы #tbl в @val

как вы себе представляете хранение таблицы в такой переменной ?
25 ноя 13, 15:55    [15186264]     Ответить | Цитировать Сообщить модератору
 Re: Присвоение записей с символами  [new]
pio777
Member

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

DECLARE @SQL VARCHAR(MAX) = ''
SELECT @SQL+=refl FROM #tbl
25 ноя 13, 17:56    [15187140]     Ответить | Цитировать Сообщить модератору
 Re: Присвоение записей с символами  [new]
_djХомяГ
Guest
pio777
NewBie77,

DECLARE @SQL VARCHAR(MAX) = ''
SELECT @SQL+=refl FROM #tbl


Если таблица большая то лучше использовать for xml path - иначе могут быть тормоза
25 ноя 13, 18:00    [15187156]     Ответить | Цитировать Сообщить модератору
 Re: Присвоение записей с символами  [new]
pio777
Member

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

В вашем случае NVARCHAR(MAX)
25 ноя 13, 18:01    [15187158]     Ответить | Цитировать Сообщить модератору
 Re: Присвоение записей с символами  [new]
pio777
Member

Откуда:
Сообщений: 127
_djХомяГ,

Согласен, только мы не знаем какая эта таблица.

NewBie77,
Можно подсмотреть тут: FAQ
25 ноя 13, 18:04    [15187169]     Ответить | Цитировать Сообщить модератору
 Re: Присвоение записей с символами  [new]
NewBie77
Member

Откуда:
Сообщений: 184
Спасибо огромное за отзывы,написал следующим образом

SELECT COALESCE(@val + '', '') + refl FROM #tbl
26 ноя 13, 11:26    [15190036]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить