我是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个节目
答案 0 :(得分: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....
正如你所拥有的那样,变量最终仅在其范围内循环一次,并且再也没有机会再次完成它的工作。