Edyta
Ratajczyk
programista/bazodano
wiec/analityk
biznesowy IT
Temat: While nie działa w procedurze?? MS SQL2000
HELP!Wewnątrz proceury mam zawarty kawałek z while.
Chodzi o to, by dopóki istnieją rekordy spełniające jakiś tam warunek - robił jakiś update, i sprawdzał znów... (ponieważ update może sprawić, że pojawią się kolejne spełniające - stąd while).
@param jest parametrem przekazywanym do procedury. Kawałek od declare - jest w procedurze. I ... zonk. Nie zawsze działa. Czasem się biesi? Nie wiem, co się dzieje, nie mam narzędzia do podglądu, ale.. poniższy kawałek (bez pierwszych dwóch wierszy - umieszczony w procedurze - nie działa (w każdym razie tracę cierpliwość po 4 minutach). Odpalony z query analysera - działa.(1 s)
Wewnątrz procedury działał. Poprzednio pomogło usunięcie procedury i utworzenie jej na nowo - TYM SAMYM KODEM. Tym razem nie pomogło, poza tym, użytkownik nie ma takiej możliwości.
Siwieję. (with recompile nie pomogło też :()
HELP!
declare @param decimal(20,0)
set @param=100
declare @TableTmp table (id decimal(20,0))
insert into @TableTmp(id)
select --duży select z joinami na wielu tabelach
while (select count(*) from @TableTmp) >0
begin
update tab set pole='wartosc'
from tabela tab
where tab.id in(select id from @TableTmp)
delete from @TableTmp
insert into @TableTmp(id)
select --duży select z joinami na wielu tabelach jak pierwszy
end