Генериране на random числа от 1 до 1000
Здравейте колеги!
Опитвам се да попълня рандом числа в една колона от 1 до 1000 без да има повторение, но нещо не ми се получават нещата.
Ще се радвам, ако някой може да каже къде бъркам и какъв е проблема с нулата, че все излиза.
Това е кода:
CREATE PROCEDURE usp_RandomNumber
AS
BEGIN
DECLARE @rowsCount INT
DECLARE @random INT 
DECLARE @isExist BIT
DECLARE @existRandom INT
    SET @existRandom = 0
    SET @rowsCount = 0
    SET @isExist = 1
    SET @rowsCount = (SELECT COUNT(*) AS Count FROM [dbo].[RandomNumbers] AS n)
    
    IF(@rowsCount < 1000)
        BEGIN
            WHILE(@isExist = 1)
             BEGIN
                SET @random = ABS(CHECKSUM(NewId())) % 1000
                SET @existRandom = (SELECT TOP 1 Numbers FROM RandomNumbers WHERE Numbers = @random AND Numbers != 0)
                IF(@existRandom > 0)
                 BEGIN 
                    SET @isExist = 1
                 END
                ELSE
                 BEGIN
                    SET @isExist = 0
                 END
                IF(@isExist = 0 )
                 BEGIN
                    INSERT INTO RandomNumbers(Numbers)
                    VALUES (@random)
                    SET @existRandom = 0
                 END
             END
        END
END
Трябва да създадеш първо съответната таблица, но можеш и на вече съществуваща да го направиш, но със съответното име и колона. Смени просто името на таблицата, която аз съм кръстил RandomNumbers и колоната Numbers( трябваше да бъде Number) или си създай същите като моите.