Заполнить таблицу T-SQL автоматически
Мне нужно внести в таблицу список из 126 сайтов с 7 типами шагов. Написанный мною сценарий неверен, и я не могу понять, почему.
То, что я хотел бы видеть, это колонка Site_Skey
1, 1, 1, 1, 1, 1, 1 и столбец PitchType_Skey
1,2,3,4,5,6,7 тогда Site_Skey
2,2,2,2,2,2,2 и столбец PitchType_Skey
1,2,3,4,5,6,7 это нужно повторить 126 раз.
Вы можете помочь?
Текущий сценарий:
DECLARE @PitchType_Skey INT
DECLARE @Site_Skey INT
SET @PitchType_Skey = 1
SET @Site_Skey = 1
WHILE (@PitchType_Skey <= 882)
WHILE (@Site_Skey <= 882)
BEGIN
INSERT INTO Capacity (PitchType_Skey, Site_Skey)
SELECT (CASE WHEN @PitchType_Skey % 7 = 0 THEN 7 ELSE @PitchType_Skey % 7 END),
(CASE WHEN @Site_Skey % 126 = 0 THEN 126 ELSE @Site_Skey % 126 END)
SET @PitchType_Skey = @PitchType_Skey + 1
SET @Site_Skey = @Site_Skey + 1
END
1 ответ
Решение
Гораздо упрощенный способ сделать это....
DECLARE @PitchType_Skey INT
DECLARE @Site_Skey INT
SET @PitchType_Skey = 1
SET @Site_Skey = 1
WHILE (@Site_Skey < 127)
BEGIN
IF @PitchType_Skey = 8
BEGIN
SET @PitchType_Skey = 1
SET @Site_Skey = @Site_Skey + 1
END
IF (@Site_Skey < 127)
BEGIN
INSERT INTO dbo.Capacity (PitchType_Skey, Site_Skey)
SELECT @PitchType_Skey, @Site_Skey
END
SET @PitchType_Skey = @PitchType_Skey + 1
END