2013-04-11 59 views
0

我在SQL真新,但是這是我到目前爲止有:如何使用存儲過程在while循環中增加多個值?

Alter Procedure GetallSchedule(@ScreenKey INT,@ShowNo INT) As 
BEGIN 
--DECLARE @ScreenKey INT 
--DECLARE @ShowNo INT 
--Declare @j INT 
--Declare @i INT 

Insert into Schedule(Cineplex, 
ScreenKey,ShowOrder,ShowNo,FilmKey,ShowDate,ShowTime) 
Values (1,@ScreenKey,1,@ShowNo,100,GETDATE(),GETDATE()) 

SET @ShowNo = 1 
SET @ScreenKey = 1 
WHILE (@ScreenKey <=20) 
    BEGIN 
    WHILE (@ShowNo <=7) 
     BEGIN 
     Insert into Schedule(
      Cineplex, 
      ScreenKey,ShowOrder,ShowNo,FilmKey,ShowDate,ShowTime) 
      Values (1,@ScreenKey,1,@ShowNo,100,GETDATE(),GETDATE()) 
     SET @ShowNo = @ShowNo + 1 
     END 
    SET @ScreenKey = @ScreenKey + 1 
    END 

END 

go 

--Execute GetallSchedule 'TUC' 

在這裏,我需要插入值增加兩個ScreenkeyShowNo。我需要獲得20個屏幕的結果,每個顯示7個顯示

回答

0

您的ShowNo變量需要在每次運行內部While循環前重置爲1。下移一行有點...

SET @ScreenKey = 1 
WHILE (@ScreenKey <=20) 
    BEGIN 
    SET @ShowNo = 1 -- this one -- reset to 1 before using in loop 
    WHILE (@ShowNo <=7) 
     BEGIN 
     Insert into Schedule.... 

如您有它的變量結束了循環儘管它的範圍只是一次,沒有機會再做工作。