Zapytanie nie działa poprawnie w pętli while
Mam pętlę While, w której próbuję wstawić.
<code> DECLARE @CurrentOffer int =121 DECLARE @OldestOffer int = 115 DECLARE @MinClubcardID bigint=0 DECLARE @MaxClubcardID bigint=1000 WHILE 1 = 1 BEGIN INSERT INTO Temp WITH (TABLOCK) SELECT top (100) clubcard from TempClub with (nolock) where ID between @MinClubcardand and @MaxClubcard declare @sql varchar (8000) while @OldestOffer <= @CurrentOffer begin print @CurrentOffer print @OldestOffer set @sql = 'delete from Temp where Clubcard in (select Clubcard from ClubTransaction_'+convert(varchar,@CurrentOffer)+' with (nolock))' print (@sql) exec (@sql) SET @CurrentOffer = @CurrentOffer-1 IF @OldestOffer = @CurrentOffer begin -- my logic end end end </code>
Moja tabela TempClub zawsze sprawdza tylko pierwsze 100 rekordów. Moja tabela TempClub ma 3000 rekordów. Muszę sprawdzić wszystkie moje karty klubowe we wszystkich 3000 rekordach za pomocą tabeli ClubTransaction_121, ClubTransaction_120, ClubTransaction_119.