Member 13203142 Ответов: 3

Ищете SQL-скрипт, который генерирует более 1000 записей


Есть ли здесь какой-нибудь скрипт, который я могу импортировать в свой sql-сервер, содержащий не менее 1000 таблиц, записей и т. д

Спасибо,
Судир

Что я уже пробовал:

Я ничего не пробовал . Мне нужна база данных, в которой есть по крайней мере 1000 таблиц и записей, которые я не могу создать вручную. Поэтому я подумал о том, чтобы получить помощь

3 Ответов

Рейтинг:
2

CHill60

Этот скрипт создаст базу данных под названием "The1000" и 1001 таблицу с именами T1, T2, T3 ... T1000 содержит 1000 идентичных записей каждая, плюс таблица под названием "трек" - содержимое которой должно быть около 2092 строк.

use master
IF EXISTS(select * from sys.databases where name='The1000')
DROP DATABASE The1000
GO
CREATE DATABASE The1000
GO
use The1000

CREATE TABLE track (id int identity(1,1), dat nvarchar(255))

GO
SET NOCOUNT ON;
	
DECLARE @maxlength int = 30
DECLARE @minlength int = 2
INSERT INTO track
SELECT  
( 
	select top (abs(checksum(newid())) % (@maxlength-@minlength) + @minlength) char(abs(checksum(newid())) % 26 + ascii('A'))  
	from sys.all_objects a1
	where sign(a1.object_id) = sign(t.object_id) /* Meaningless thing to force correlation */
	for xml path('')
) as NewRandomString 
FROM sys.all_objects t;
-- Random text generator from Rob Farley - http://stackoverflow.com/questions/2152204/tsql-pseudo-random-text-generator

DECLARE @start int = 1
DECLARE @end   int = 1000	-- Change this to the number of tables you want
WHILE @start <= @end
BEGIN
	declare @sql nvarchar(max) = 'CREATE TABLE T' + CAST(@start AS NVARCHAR)
	set @sql += '( ID INT, DAT NVARCHAR(255))  '
	set @sql += 'INSERT INTO T' + CAST(@start AS NVARCHAR) + ' SELECT TOP 1000 * FROM track'
	EXEC sp_executeSql @sql
	SET @start += 1
END
Если вам нужны случайные имена таблиц, то используйте dat колонка из таблицы track где id = @start вместо.


Рейтинг:
1

Suvendu Shekhar Giri

Вы можете использовать образец базы данных SQL Server
Образцы продуктов Microsoft SQL Server: Database-Home[^]
Выберите один из них в соответствии с вашей версией SQL Server.

Вы можете генерировать образцы данных самостоятельно, используя CROSS JOIN.
Существуют также некоторые инструменты для генерации тестовых данных.
SQL Data Generator - Генератор данных для баз данных MS SQL Server[^]

Надеюсь, это поможет :)


Рейтинг:
0

RickZeeland

(обновленное решение)

-- Create 1000 test tables with 1000 records.
USE [master]
GO

DECLARE @teller1 int;
DECLARE @testname VARCHAR(50);
SET @teller1 = 1;

WHILE @teller1 <= 1000
BEGIN
	SET @testname = 'Test' + STR(@teller1,4);

	BEGIN
		SET @testname = QUOTENAME(@testname);
		EXEC('CREATE DATABASE ' + @testname);
		EXEC('USE ' + @testname + '; CREATE TABLE [Customer](
			[ID] [uniqueidentifier] ROWGUIDCOL NOT NULL,
			[Name] [nvarchar](128) NULL,
			 CONSTRAINT [PK_Customer_CustomerID] PRIMARY KEY CLUSTERED 
			(
				[ID] ASC
			)
			) ON [PRIMARY];
			
			DECLARE @teller int;
			SET @teller = 1;
			 
			WHILE @teller <= 1000
			BEGIN
				INSERT INTO [Customer] ([ID],[Name]) VALUES (NEWID(), ''TEST'');
				SET @teller = @teller + 1;
			END;')
	END;

	SET @teller1 = @teller1 + 1;
END

GO


CHill60

Но это только одна таблица а не 1000 таблиц