How to create a stored procedure that returns a random number if it does not exist in the table

advertisements

I Want To Create A Stored procedure That return A Random Number Between (11111,99999)

Provided that the Number Should Not Exist In The Table

I use This complicated Function to Do that But I Need To Convert it to Stored Procedure

    Function GiveRandomStudentNumber() As String
s:
        Dim rnd As New Random
        Dim st_num As String = rnd.Next(11111, 99999)
        Dim cmd As New SqlCommand("select count(0) from student where st_num = " & st_num,con)
        dd.con.Open()
        Dim count As Integer = cmd.ExecuteScalar()
        dd.con.Close()
        If count <> 0 Then
            GoTo s
        Else
            Return st_num
        End If
    End Function

this Function Is Works But I need To Convert it To Stored Procedure ..

Thanks In Advance ...


CREATE PROCEDURE [dbo].[Select_RandomNumber]
(
@Lower INT, --11111-- The lowest random number
@Upper INT --99999-- The highest random number
)
AS
BEGIN

    IF NOT (@Lower < @Upper) RETURN -1

    --TODO: If all the numbers between Lower and Upper are in the table,
    --you should return from here
    --RETURN -2

    DECLARE @Random INT;
    SELECT @Random = ROUND(((@Upper - @Lower -1) * RAND() + @Lower), 0)

    WHILE  EXISTS (SELECT * FROM YourTable WHERE randCol = @Random)
    BEGIN

        SELECT @Random = ROUND(((@Upper - @Lower -1) * RAND() + @Lower), 0)
    END

    SELECT @Random
END