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

Откуда:
Сообщений: 165
Доброго времени суток.

Есть скрипт по парсингу строки

declare @str varchar(1024)
set @str=',140030,Московская обл,Люберецкий р-н,,Малаховка п,Касимовское ш,3,Б,'
select @str='select '''+replace(@str, ',', ''' as val union all select ''')+''''
declare @t table(id int identity, val varchar(100))
insert into @t
exec (@str)
select val from @t where val!='' order by id;

При запуске выдаётся ошибка

Msg 197, Level 15, State 1, Line 6
EXECUTE cannot be used as a source when inserting into a table variable.

Версия SQL

Microsoft SQL Server  2000 - 8.00.2040 (Intel X86)   May 13 2005 18:33:17   Copyright (c) 1988-2003 Microsoft Corporation  Enterprise Edition on Windows NT 5.0 (Build 2195: Service Pack 4) 

Как решить проблему?
21 июл 09, 11:02    [7438935]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с запуском скрипта  [new]
borin
Member

Откуда: angarsk/msk
Сообщений: 677
AntonDemin,
а если insert делать во временную таблицу #t а потом из нее уже наливать куда надо?
21 июл 09, 11:07    [7438973]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с запуском скрипта  [new]
AntonDemin
Member

Откуда:
Сообщений: 165
borin,
Спасибо, работает вот такой скрипт:

declare @str varchar(1024)
set @str=',140030,Московская обл,Люберецкий р-н,,Малаховка п,Касимовское ш,3,Б,'
select @str='select '''+replace(@str, ',', ''' as val union all select ''')+''''
create table #t (id int identity, val varchar(100))
insert into #t
exec (@str)
select val from #t where val!='' order by id;
21 июл 09, 11:10    [7438996]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить