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

Откуда:
Сообщений: 39
use master
set nocount on
set dateformat dmy;
DECLARE @sd date, @ed date, @parid int, @tempid int, @spanid int;
set @sd= N'01.01.2015'/*вносим данные*/
set @ed= N'03.01.2015'
set @parid=1
set @tempid =20
create table #test1 (dt date,spanid int,paramid int, timesec int)
declare cd cursor for
select spanid from spaneddata
open cd
fetch next from cd into @spanid
while @@fetch_status=0
begin
insert #test1
select * from spaneddata where spanid=@spanid and (dt>@sd AND dt<@ed)
fetch next from cd into @spanid
end
close cd
deallocate cd


вот код. в таблице #test1 по 2 записи каждого вида
24 ноя 15, 10:23    [18462779]     Ответить | Цитировать Сообщить модератору
 Re: почему курсор отрабатывает 2 раза вместо одного  [new]
Glory
Member

Откуда:
Сообщений: 104751
dantist443
вот код. в таблице #test1 по 2 записи каждого вида

Какой скрипт написали, такой и результат
24 ноя 15, 10:25    [18462789]     Ответить | Цитировать Сообщить модератору
 Re: почему курсор отрабатывает 2 раза вместо одного  [new]
iap
Member

Откуда: Москва
Сообщений: 47198
N'03.01.2015' - это 3 января или 1 марта? Или вам всё равно?
24 ноя 15, 10:39    [18462889]     Ответить | Цитировать Сообщить модератору
 Re: почему курсор отрабатывает 2 раза вместо одного  [new]
iap
Member

Откуда: Москва
Сообщений: 47198
Непонятно, зачем вообще курсор?
Курсор - это последнее, что следует изучать и применять.
24 ноя 15, 10:40    [18462897]     Ответить | Цитировать Сообщить модератору
 Re: почему курсор отрабатывает 2 раза вместо одного  [new]
dantist443
Member

Откуда:
Сообщений: 39
iap
N'03.01.2015' - это 3 января или 1 марта? Или вам всё равно?

в данный момент не суть важно

Glory
Какой скрипт написали, такой и результат

ну а ошибка то где? ткните плиз пальцем
24 ноя 15, 10:43    [18462917]     Ответить | Цитировать Сообщить модератору
 Re: почему курсор отрабатывает 2 раза вместо одного  [new]
PaulYoung
Member

Откуда: Москва
Сообщений: 2576
dantist443,

намекаю:
insert #test1
select * from spaneddata where spanid=@spanid and (dt>@sd AND dt<@ed)
24 ноя 15, 10:45    [18462927]     Ответить | Цитировать Сообщить модератору
 Re: почему курсор отрабатывает 2 раза вместо одного  [new]
invm
Member

Откуда: Москва
Сообщений: 9915
dantist443
ну а ошибка то где? ткните плиз пальцем
Уберите insert, оставьте только select - и увидите в чем.
24 ноя 15, 10:45    [18462932]     Ответить | Цитировать Сообщить модератору
 Re: почему курсор отрабатывает 2 раза вместо одного  [new]
Glory
Member

Откуда:
Сообщений: 104751
dantist443
ну а ошибка то где? ткните плиз пальцем

Ошибка в том, что число записей в какой-то таблице не есть число итераций цикла.
Для отладки кода есть много способов, но форум не входит в их число.

Сообщение было отредактировано: 24 ноя 15, 10:46
24 ноя 15, 10:45    [18462933]     Ответить | Цитировать Сообщить модератору
 Re: почему курсор отрабатывает 2 раза вместо одного  [new]
Mind
Member

Откуда: Лучший город на Земле
Сообщений: 2322
dantist443
ну а ошибка то где? ткните плиз пальцем
Вот это все ошибка:
declare cd cursor for
select spanid from spaneddata
open cd
fetch next from cd into @spanid
while @@fetch_status=0

fetch next from cd into @spanid
end
close cd
deallocate cd
24 ноя 15, 23:26    [18468158]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить