0

我是 SQL 的新手,但这是我目前所拥有的:

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'

在这里,我需要插入同时增加Screenkey和的值ShowNo。我需要获得 20 个屏幕的结果,每个屏幕有 7 个节目

4

1 回答 1

0

在每次运行内部 While 循环之前,您的ShowNo变量需要重置为 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....

正如你所拥有的那样,变量最终只循环了一次它的范围,并且再也没有机会做它的工作。

于 2013-04-11T12:24:10.603 回答