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

Откуда:
Сообщений: 189
Приветствую всех!
MS SQL не касался уже много лет, сейчас возникла необходимость простенькой вставки через цикл, но скрипт ругается, подскажите что не так?

DECLARE move_cur CURSOR FOR
select RecID, GlobalDep, Globalrec from table1 where (F = 'ИВАНОВ' and I = 'ИВАН' and O = 'ИВАНОВИЧ' and DR = '01.01.1970') or (F = 'ПЕТРОВИЧ' and I = 'ПЕТР' and O = 'ПЕТРОВИЧ' and DR = '01.01.1971')
DECLARE
@T_RecID VARCHAR(10),
@T_GlobalDep VARCHAR(10),
@T_GlobalRec VARCHAR(10)
BEGIN
OPEN move_cur
FETCH from move_cur INTO @T_RecID,@T_GlobalDep,@T_GlobalRec
WHILE @@FETCH_STATUS = 0
BEGIN
insert INTO table2 (RecID, GlobalDep, DictID, DictValue, Globalrec) values (@T_RecID,@T_GlobalDep, '64', '915', @T_GlobalRec)
END
CLOSE move_cur
DEALLOCATE move_cur

пишет в последней строке Incorrect syntax near 'move_cur'.
24 май 19, 16:22    [21893280]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с курсором MS SQL 2000!  [new]
Ken@t
Member

Откуда: 大地
Сообщений: 3264
Javl,

для этой задачи курсор не нужен.
24 май 19, 16:25    [21893285]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с курсором MS SQL 2000!  [new]
Javl
Member

Откуда:
Сообщений: 189
Ken@t
Javl,

для этой задачи курсор не нужен.


Подскажите?
24 май 19, 16:26    [21893287]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с курсором MS SQL 2000!  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6612
Javl,
1. END для первого BIGIN
2. Эта песня будет вечной
3. Зачем курсор...
24 май 19, 16:27    [21893288]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с курсором MS SQL 2000!  [new]
Javl
Member

Откуда:
Сообщений: 189
TaPaK
Javl,
1. END для первого BIGIN
2. Эта песня будет вечной
3. Зачем курсор...


Так там же значения от нескольких записей, разве не нужен цикл?
24 май 19, 16:29    [21893291]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с курсором MS SQL 2000!  [new]
Ken@t
Member

Откуда: 大地
Сообщений: 3264
insert INTO table2 (RecID, GlobalDep, DictID, DictValue, Globalrec) 
select RecID, GlobalDep, '64', '915', Globalrec from table1 where (F = 'ИВАНОВ' and I = 'ИВАН' and O = 'ИВАНОВИЧ' and DR = '01.01.1970') or (F = 'ПЕТРОВИЧ' and I = 'ПЕТР' and O = 'ПЕТРОВИЧ' and DR = '01.01.1971')
24 май 19, 16:30    [21893293]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с курсором MS SQL 2000!  [new]
Javl
Member

Откуда:
Сообщений: 189
Ken@t
insert INTO table2 (RecID, GlobalDep, DictID, DictValue, Globalrec) 
select RecID, GlobalDep, '64', '915', Globalrec from table1 where (F = 'ИВАНОВ' and I = 'ИВАН' and O = 'ИВАНОВИЧ' and DR = '01.01.1970') or (F = 'ПЕТРОВИЧ' and I = 'ПЕТР' and O = 'ПЕТРОВИЧ' and DR = '01.01.1971')


Спасибо огромное!
24 май 19, 16:33    [21893300]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с курсором MS SQL 2000!  [new]
-- KAB --
Member

Откуда: Москва
Сообщений: 20
Javl
FETCH from move_cur INTO @T_RecID,@T_GlobalDep,@T_GlobalRec
WHILE @@FETCH_STATUS = 0
BEGIN
insert INTO table2 (RecID, GlobalDep, DictID, DictValue, Globalrec) values (@T_RecID,@T_GlobalDep, '64', '915', @T_GlobalRec)
END

У вас бесконечный цикл )))) фич в цикле должен быть
24 май 19, 16:43    [21893314]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить