usp_RandomNumber CREATE PROCEDURE [dbo].[usp_RandomNumber] ( @Len INT = 1, --隨機數位數 @Rows INT = 1 --隨機筆數 ) 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 @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 -- 每產生完一個隨機數之后,將隨機數的位數初始化為1 END END SELECT [Random Number] FROM @T END