How do I populate a int column, currently empty, with random numbers with no duplicates?
I suppose you could make the column a primary key to prevent duplicates, though that's kind of a hack. You can remove the key later.
---- Create the variables for the random number generation
DECLARE @Random INT;
DECLARE @Upper INT;
DECLARE @Lower INT;
DECLARE @Index integer
---- This will create a random number between 1 and 999
SET @Lower = 1 ---- The lowest random number
SET @Upper = 999 ---- The highest random number
SET @Index = 0 --- A while loop counter
--- Loop from 0 to 10
WHILE @Index < 10
BEGIN
SELECT 'loop counter = ', @index
SELECT @Random = ROUND(((@Upper - @Lower -1) * RAND() + @Lower), 0)
--Insert @Random here.
SET @index = @index + 1
END
If this is an existing table to which you added a new INT column, you can do something like this:
UPDATE MyTable
SET MyIntColumn = CONVERT(int, RAND(CHECKSUM(NEWID())) * 10000);
This will populate the empty column with random numbers between 1 and 10000.