-- 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