I am trying to insert randomly generated numbers into an empty table using a cursor but I want it to go through all possible combinations with out having duplicates of the same number and I want to add conditions to what needs to be inserted. I want it to run through the code multiple times, I don't want to have to execute it to the whole time to get like 1 million rows.
So I want to know how would I add conditions to the insert? and Would I need to create a proc for it to run multiple times?
DECLARE @iNumber1 INT
,@iNumber2 INT
,@iNumber3 INT
,@iNumber4 INT
,@iNumber5 INT
,@iNumber6 INT
,@iNumber7 INT
,@iNumber8 INT
,@iNumber9 INT
,@iNumber10 INT
DECLARE GenRandNum CURSOR FOR
SELECT ABS(CAST(NEWID() AS binary(6)) %50) + 1 AS Number1
,ABS(CAST(NEWID() AS binary(6)) %50) + 1 AS Number2
,ABS(CAST(NEWID() AS binary(6)) %50) + 1 AS Number3
,ABS(CAST(NEWID() AS binary(6)) %50) + 1 AS Number4
,ABS(CAST(NEWID() AS binary(6)) %50) + 1 AS Number5
,ABS(CAST(NEWID() AS binary(6)) %50) + 1 AS Number6
,ABS(CAST(NEWID() AS binary(6)) %50) + 1 AS Number7
,ABS(CAST(NEWID() AS binary(6)) %50) + 1 AS Number8
,ABS(CAST(NEWID() AS binary(6)) %50) + 1 AS Number9
,ABS(CAST(NEWID() AS binary(6)) %50) + 1 AS Number10
OPEN GenRandNum
FETCH NEXT FROM GenRandNum INTO @iNumber1, @iNumber2, @iNumber3, @iNumber4, @iNumber5, @iNumber6, @iNumber7, @iNumber8, @iNumber9, @iNumber10
WHILE @@FETCH_STATUS = 0
BEGIN
INSERT INTO GenNumbers (Number1, Number2, Number3, Number4, Number5, Number6, Number7, Number8, Number9, Number10)
VALUES (@iNumber1, @iNumber2, @iNumber3, @iNumber4, @iNumber5, @iNumber6, @iNumber7, @iNumber8, @iNumber9, @iNumber10 )
FETCH NEXT FROM GenRandNum INTO @iNumber1, @iNumber2, @iNumber3, @iNumber4, @iNumber5, @iNumber6, @iNumber7, @iNumber8, @iNumber9, @iNumber10
END
CLOSE GenRandNum
DEALLOCATE GenRandNum
the help would be greatly appreciated
There is no need for a cursor. Just use GENERATE_SERIES
INSERT INTO GenNumbers
(Number1, Number2, Number3, Number4, Number5, Number6, Number7, Number8, Number9, Number10)
SELECT
CHECKSUM(NEWID()),
CHECKSUM(NEWID()),
CHECKSUM(NEWID()),
CHECKSUM(NEWID()),
CHECKSUM(NEWID()),
CHECKSUM(NEWID()),
CHECKSUM(NEWID()),
CHECKSUM(NEWID()),
CHECKSUM(NEWID()),
CHECKSUM(NEWID())
FROM GENERATE_SERIES(1, 1000000);