Listing 3: Code to Populate the Sessions Table with a Large Number of Rows
SET NOCOUNT ON;
USE tempdb;
TRUNCATE TABLE dbo.Sessions;
DECLARE @numrows AS INT;
SET @numrows = 10000; -- Change this value according to your needs
INSERT INTO dbo.Sessions WITH(TABLOCK)
(keycol, app, usr, host, starttime, endtime)
SELECT
ROW_NUMBER() OVER(ORDER BY (SELECT NULL)) AS keycol,
D.*,
DATEADD(
second,
1 + ABS(CHECKSUM(NEWID())) % (20*60),
starttime) AS endtime
FROM
(
SELECT
'app' + CAST(1 + ABS(CHECKSUM(NEWID())) % 10 AS VARCHAR(10)) AS app,
'user1' AS usr,
'host1' AS host,
DATEADD(
second,
1 + ABS(CHECKSUM(NEWID())) % (30*24*60*60),
'20090101') AS starttime
FROM dbo.GetNums(@numrows) AS Nums
WHERE n <= @numrows
) AS D;
GO