Как INSERT INTO в таблице 300 раз в цикле в SQL?

Я хотел бы вставить значение, полученное из счетчика в SQL, и повторить его 300 раз.

Что-то вроде:

DECLARE @Counter = 0;

-- BEGIN Loop 
    SET @Counter = @Counter + 1 
    INSERT INTO tblFoo VALUES(@Counter)
-- REPEAT 300 times

Как я могу это достичь? Благодаря

Ответ 1

Вы можете попробовать следующее:

DECLARE @i int = 0
WHILE @i < 300 
BEGIN
    SET @i = @i + 1
    /* your code*/
END

Ответ 2

DECLARE @first AS INT = 1
DECLARE @last AS INT = 300

WHILE(@first <= @last)
BEGIN
    INSERT INTO tblFoo VALUES(@first)
    SET @first += 1
END

Ответ 4

В ssms мы можем использовать GO для выполнения того же оператора

Edit Это означает, что если вы положили

 some query

 GO n

Некоторые запросы будут выполняться n раз

Ответ 5

Нашли несколько разных ответов, которые я объединил для решения проблемы simulair:

CREATE TABLE nummer (ID INTEGER PRIMARY KEY, num, text, text2);
WITH RECURSIVE
  for(i) AS (VALUES(1) UNION ALL SELECT i+1 FROM for WHERE i < 1000000)
INSERT INTO nummer SELECT i, i+1, "text" || i, "otherText" || i FROM for;

Добавляет 1 miljon rows с

  • id увеличивается на единицу при каждой итерации
  • num больше, чем id
  • текст, конкатенированный с id-number like: text1, text2... text1000000
  • text2, объединенный с id-number like: otherText1, otherText2... otherText1000000