sqlserver 不重複的隨機數

2022-09-25 01:48:10 字數 1512 閱讀 5315

mssql隨機數

mssql有乙個函式char()是將int(0-255) ascii**轉換為字元。那我們可以使用下面ms sql語句,可以隨機生成小寫、大寫tkqny字母,特殊字元和數字。

大寫字母:

char(round(rand() * 25 + 65,0))

小寫字母:

char(round(rand() * 25 + 97,0))

特殊字元:

char(round(rand() * 13 + 33,0))

數字:

char(round(rand() * 9 + 48,0))

剛才有位網友在skype問及如上問題。

好的,insus.net也正想寫乙個儲存過程來應用上面這篇的sql語句,你可以參考如下的儲存過程,如果還問題請繼續討論。

複製** **如下:

usp_randomnumber

create procedure [dbo].[usp_randomnumber]

( @len int = 1, --隨機數字數

@rows int = 1 --隨機筆www.cppcns.com數

) as

begin

declare @t as table([random number] varchar(max))

declare @l int = 1, @r int = 1

while @r <= @rows

begin

declare @rn varchar(max) = ''

while @l <= @len --隨機產生每個隨數的位數

begin

set @rn = @rn + char(round(rand() * 9 + 48,0))

set @l = @l + 1

end

--如果產生相同的隨機數,將不會儲存

if not exists(select [random number] from tkqny@t where [random number] = @rn)

begin

insert into @t select @rn --insert into @t ([random number])values (@rn)

set @r = @r + 1 --記錄總共產生了幾筆隨機數

set @l = 1 -- 每產生完乙個隨機數之後,將隨機數www.cppcns.com的位數初始化為1

end

end

select [random number] from @t

end

當你把上面的儲存過程附加入資料庫之後,可以執行這個儲存過程:

複製** **如下:

execute [dbo].[usp_randomnumber] 8,10

得到的結果(由於是隨機產生,每次execute程式設計客棧獲得結果會不一樣)

本文標題: sqlserver 不重複的隨機數

本文位址:

不重複隨機數

1 不重複隨機數1 生產 lowerbound,upperbound 的隨機數,核心 int upperbound lowerbound 1 rnd lowerbound 示例 如下 sub rndnumnorepeat1 dimdic dim i set dic createobject scri...

隨機生成不重複的資料

1 js生成不重複的隨機數 方法一 傳入乙個最大允許生成的引數。隨機生成十個不重複的資料出來 param是生成的最大數 function getnewrandomstr param if isequ i else num num.length val for var j 0 j num.length...

不重複的隨機數

大哥,看了你這篇博文我怎樣才能產生10個且每個有8位不相同的隨機數字?剛才有位在skype問及如上問題。好的,insus.net也正想寫乙個儲存過程來應用上面這篇的sql語句,你可以參考如下的儲存過程,如果還問題請繼續討論。create procedure dbo usp randomnumber ...