SQL Make testdata
SQL
Download (.zip)
-- Various samples to create test data. use pubs SET NOCOUNT ON go
-- Method 1. Simple DEFAULT values on table. if (isnull(object_id('xyz'),0) ) > 0 DROP TABLE xyz go
CREATE TABLE xyz ( col1 int PRIMARY KEY IDENTITY(1, 1) NOT NULL, col2 int NOT NULL DEFAULT 999, col3 char(10) NOT NULL DEFAULT 'ABCEFGHIJK' ) GO
DECLARE @counter int SET @counter=1 WHILE (@counter <= 1000) BEGIN INSERT xyz DEFAULT VALUES SET @counter=@counter+1 END
SELECT 'minimum' = min(col1), 'maximum' = max(col1), 'count' = count(*) from xyz DROP TABLE xyz go
-- Method 2. Generate random data in a loop IF (ISNULL(OBJECT_ID('random_data'), 0)) > 0 DROP TABLE random_data GO
CREATE TABLE random_data ( col1 int PRIMARY KEY, col2 int, col3 char(15) ) GO
DECLARE @counter int, @col2 int, @col3 char(15) /* Insert 1000 rows of data */ -- Seed random generator SELECT @counter=0, @col2=RAND(@@SPID + cpu + physical_io) FROM master..sysprocesses where spid=@@SPID
WHILE (@counter < 1000) BEGIN SELECT @counter=@counter + 10, -- Sequence numbers by 10 @col2= CASE -- Random integer between -9999 and +9999 WHEN CONVERT(int, RAND() * 1000) % 2 = 1 THEN (CONVERT(int, RAND() * 100000) % 10000 * -1) ELSE CONVERT(int, RAND() * 100000) % 10000 END, @col3= -- Four random letters followed by a random fill letter CHAR((CONVERT(int, RAND() * 1000) % 26 ) + 65) -- 65 is 'A' + CHAR((CONVERT(int, RAND() * 1000) % 26 ) + 65) + CHAR((CONVERT(int, RAND() * 1000) % 26 ) + 65) + CHAR((CONVERT(int, RAND() * 1000) % 26 ) + 65) + REPLICATE(CHAR((CONVERT(int, RAND() * 1000) % 26 ) + 65), 11)
INSERT random_data VALUES (@counter, @col2, @col3) END GO
SELECT * FROM random_data DROP TABLE random_data go
-- Method 3. Generate random values for DEFAULT if (isnull(object_id('random_data'),0) ) > 0 DROP TABLE random_data go
CREATE TABLE random_data ( col1 int PRIMARY KEY IDENTITY(10,10) NOT NULL, col2 int NOT NULL DEFAULT CASE -- Random integer between -9999 and +9999 WHEN CONVERT(int, RAND() * 1000) % 2 = 1 THEN (CONVERT(int, RAND() * 100000) % 10000 * -1 ) ELSE CONVERT(int, RAND() * 100000) % 10000 END, col3 char(15) NOT NULL DEFAULT CHAR((CONVERT(int, RAND() * 1000) % 26 ) + 65) -- 65 is 'A' + CHAR((CONVERT(int, RAND() * 1000) % 26 ) + 65) + CHAR((CONVERT(int, RAND() * 1000) % 26 ) + 65) + CHAR((CONVERT(int, RAND() * 1000) % 26 ) + 65) + REPLICATE(CHAR((CONVERT(int, RAND() * 1000) % 26) + 65), 11) ) GO
DECLARE @counter int SET @counter=1 WHILE (@counter <= 1000) BEGIN INSERT random_data DEFAULT VALUES SET @counter=@counter + 1 END
SELECT 'minimum' = min(col2), 'maximum' = max(col2), 'average' = avg(col2) from random_data SELECT * FROM random_data go
|