삽입하려는 위치에 While 루프가 있습니다.while 루프에서 쿼리가 제대로 작동하지 않습니다.
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
내 TempClub 테이블은 항상 처음 100 개의 레코드 만 검사합니다. 내 TempClub 테이블에 3000 개의 레코드가 있습니다. 모든 Clubcard를 ClubTransaction_121, ClubTransaction_120, ClubTransaction_119 테이블로 3000 레코드를 모두 확인해야합니다. 모든 항목을 검색하려면
내 눈도 있음을 비틀 거렸다. 거기에 뭔가 복잡한 것을 찾고 있습니다 ... –
일괄 적으로 데이터를 삽입하는 중입니다. 그래서 상위 100 개를 추출한 다음 모든 레코드를 마칠 때까지 프로세스를 반복하십시오. – happysmile
아, 이해가 안되는 부분입니다. 그냥 당신이 anglais가 조금 찌른다고 생각했습니다. @Chris의 답변이 받아 들여지지 않습니까, 아니면 받아 들여지지 않았습니까? –