可能重複:
Query not working fine in while loopWHILE循環問題在SQL Server不工作2005
我有一個WHILE的循環,我想插入
DECLARE @CurrentOffer int =121
DECLARE @OldestOffer int = 115
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
我我在這裏做的是我按行批量插入表Temp
並檢查是否存在表ClubTransaction_121
如果它退出,我需要在這裏刪除我的循環得到第一個100會員卡,然後用ClubTransaction_121
檢查,並移動到檢查下一個報價是120
但我的表Temp
有3000行這需要用表ClubTransaction_121
檢查所有行。
只爲前100條記錄檢查和移動檢查與下一ClubTransaction_120,請幫我在這
我需要檢查我所有的會員卡所有3000行與ClubTransaction_121
,ClubTransaction_120
,ClubTransaction_119
表
對此的任何幫助將是偉大的
哇,有一些薄弱的數據庫設計怎麼回事。 – 2012-04-14 15:35:49
是的,你可能會考慮嘗試關係數據設計。 – RBarryYoung 2012-04-14 15:37:16