Вам нужно только Go 1000
после ВСТАВКИ, чтобы заполнить его 1000 раз, вот так:
INSERT INTO dbo.Cusomers(Id, FirstName, LastName) VALUES(1, 'Mohamed', 'Mousavi')
GO 1000
Будет создана таблица с 1000 одинаковыми строками. Другое решение состоит в том, что вы можете заполнить первую строку вашей таблицы некоторыми данными, а затем заполнить следующие строки таблицы, повторяя первую строку снова и снова, это означает, что вы заполняете свою таблицу самостоятельно:
INSERT INTO dbo.Customers
SELECT * FROM dbo.Customers
GO 10
В случае, если один или несколько столбцов являются идентичными (то есть они принимают уникальные значения, если он автоинкрементный), вы просто не помещаете его в свой запрос, например, если Id в dbo.Customer - это идентификатор, запрос выполняется как это:
INSERT INTO dbo.Customers
SELECT FirstName, Last Name FROM dbo.Customers
GO 10
Вместо:
INSERT INTO dbo.Customers
SELECT Id, FirstName, Last Name FROM dbo.Customers
GO 10
В противном случае вы столкнетесь с этой ошибкой:
An explicit value for the identity column in table 'dbo.Customers' can only be specified when a column list is used and IDENTITY_INSERT is ON.
Примечание:
Это своего рода арифметическая прогрессия, поэтому она будет длиться немного, не используйте большое число перед GO
.
Если вы хотите, чтобы таблица была немного более сложной, то на этот раз вы можете добиться того же путем, выполнив простой запрос и выполнив следующие шаги:
Выберите одну из ваших таблиц, которая имеет значительное количество строк, скажем, dbo.Customers
Щелкните правой кнопкой мыши и выберите Script Table as > Create To > New Query Editor Window
Назовите вашу новую таблицу как-то иначе, например dbo.CustomersTest. Теперь вы можете выполнить запрос, чтобы получить новую таблицу с аналогичной структурой с помощью dbo.Customers.
Примечание: имейте в виду, что если в нем есть идентификатор, измените его на Identity Specification to No
, так как предполагается, что вы будете заполнять новую таблицу данными исходной.
- Запустите следующий запрос, он будет выполнен 1000 раз, вы можете изменить его на более или менее, но помните, что он может длиться в течение нескольких минут в зависимости от аппаратного обеспечения вашего компьютера:
INSERT INTO [dbo].[CustomersTest]
SELECT * FROM [dbo].[Customers]
GO 1000
- Через некоторое время у вас есть таблица с фиктивными строками!
Как упомянул @SQLMenace, RedGate Data Generator - очень хороший инструмент для его выполнения, он стоит $ 369, у вас есть пробный шанс на 14 дней. Хотя.
Хорошим моментом является то, что RedGate идентифицирует внешние ключи, чтобы вы могли применять JOIN в своих запросах.
У вас есть куча опций, которые позволяют вам решить, как каждый столбец должен быть заполнен, каждый столбец ожидается семантически, так что предлагаются связанные данные, например, если у вас есть столбец с именем «Отдел», это не так. заполненный странными символами, он заполнен такими выражениями, как «Технические», «Веб», «Клиент» и т. д. Даже регулярное выражение можно использовать для ограничения выбранных символов.
Я заполнил свои таблицы более чем 10000000 записей, что было потрясающим симулятором.