2013-04-11 77 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.... 

如您有它的变量结束了循环尽管它的范围只是一次,没有机会再做工作。