CHill60
Если это для тестовых данных ТОЛЬКО вы можете использовать функцию SQL GO
оператор, который позволяет запускать пакет несколько раз. Вы просто заключаете свою партию между GO
заявления.
Пример:
CREATE TABLE #Example (id int identity(1,1), dat nvarchar(20))
GO -- This one is important otherwise it tries to create the table again
insert into #Example (dat) VALUES ('A'), ('B'),('C'), ('D'),('E')
GO 10
SELECT * FROM #example
Это даст мне 50 строк в таблице. Если вы посмотрите на выходные сообщения Вы можете увидеть что происходит
Beginning execution loop
(5 row(s) affected)
(5 row(s) affected)
(5 row(s) affected)
(5 row(s) affected)
(5 row(s) affected)
(5 row(s) affected)
(5 row(s) affected)
(5 row(s) affected)
(5 row(s) affected)
(5 row(s) affected)
Batch execution completed 10 times.
(50 row(s) affected)
В качестве альтернативы, используя
SELECT
точно так же вы должны попробовать
INSERT INTO #Example SELECT TOP 1 dat FROM #Example
GO 49
Я не могу вспомнить, где я впервые увидел это, но вот ссылка на MSSQLTips.com статья о том же самом
Выполнение пакета TSQL несколько раз с помощью GO[
^]
Я не могу достаточно сильно подчеркнуть, что эта техника никогда не должна найти свой путь в производственный код - она просто не будет работать.
GO-это не инструкция Transact-SQL; это команда, распознаваемая утилитами sqlcmd и osql, а также редактором кода SQL Server Management Studio.