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

Откуда:
Сообщений: 83
Привет

Вот текст запроса. В нем я делаю лишний селект дабы отследить динамику изменения параметров.

declare @ass_assembly_item_restriction int, @item int, @item_name varchar(500)

declare @ass_assembly_item_restriction_const int,

		@count int
		
		select @ass_assembly_item_restriction_const = 0,
		
				@count = 1
		select @ass_assembly_item_restriction_const,
		
				@count

DECLARE #cur INSENSITIVE CURSOR FOR

	select 
a.ass_assembly_item_restriction																					
,ad.item																											
,i.name
	from Configurator.dbo.ASS_ASSEMBLY_ITEM_RESTRICTION a
	join Configurator.dbo.ASS_ASSEMBLY_ITEM_RESTRICTION_DETAIL ad on a.ass_assembly_item_restriction = ad.ass_assembly_item_restriction
	join mbsII.dbo.ITEM i on i.item = ad.item
	group by 
a.ass_assembly_item_restriction
,ad.item
,i.name
	--order by a.ass_assembly_item_restriction desc

OPEN #cur
FETCH #cur into  @ass_assembly_item_restriction, @item, @item_name
WHILE @@FETCH_STATUS = 0
BEGIN --1111



if (@ass_assembly_item_restriction_const <> @ass_assembly_item_restriction) 
BEGIN
		set @ass_assembly_item_restriction_const = @ass_assembly_item_restriction
		set @count = 1
		
		select 'if' 'where',@ass_assembly_item_restriction_const, @ass_assembly_item_restriction, @count,@ass_assembly_item_restriction, @item, @item_name
END
ELSE
BEGIN
	
		set @item_name = Replace(@item_name, '''','''''')
		exec(' update #temp  set item'+ @count+' = '+@item+', item_name'+ @count  + ' = '''+ @item_name  + ''' where ass_assembly_item_restriction = '+ @ass_assembly_item_restriction_const)

		set @count = @count + 1
		select 'then' 'where',@ass_assembly_item_restriction_const, @ass_assembly_item_restriction, @count,@ass_assembly_item_restriction, @item, @item_name

END
END
close #cur
deallocate #cur


Вот в это месте
if (@ass_assembly_item_restriction_const <> @ass_assembly_item_restriction) 


параметр из курсора сравнивается с постоянным параметром. Задумкка такая, что при перемещении на др ID неравенство выполняется и счетчик @count сбрасывается.
Проблема в том, что параметры @ass_assembly_item_restriction_const и @ass_assembly_item_restriction не меняются.

Где я не прав и как правильно?
20 янв 12, 17:03    [11941299]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с CURSOR  [new]
San4ooo
Member

Откуда:
Сообщений: 83
спасибо братцы по орудию
разобрался сам)
20 янв 12, 17:22    [11941529]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с CURSOR  [new]
Зайцев Фёдор
Member

Откуда: Лужки
Сообщений: 5308
а это ничего, что в цикле нет fetch ?
20 янв 12, 17:23    [11941533]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить