如何在SQL Server中使用A-F和0-9之间的字符生成随机数 [英] How to generate random number using character between A-F and 0-9 in SQL Server

查看:208
本文介绍了如何在SQL Server中使用A-F和0-9之间的字符生成随机数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何在SQL Server中使用A-F和0-9之间的字符(最多30个字符)生成随机数?

How to generate random number using character between A-F and 0-9 up to 30 char length in SQL Server?

where random number are unique?

推荐答案


试试这个:
Hi,
Try this:
CREATE procedure dbo.GenerateRandomString (
 @useNumbers bit,
 @useUpperCase bit,
 @string varchar(100) OUT
)
As
Begin
	DECLARE @charactersToUse VARCHAR(8), @stringLength INT
	SET @charactersToUse='ABCDEF'
	SET @stringLength=8
if @stringLength <= 0
 raiserror('Cannot generate a random string of zero length.',16,1)

declare @characters varchar(100)
declare @count int

set @characters = ''

if @useNumbers = 1
begin
 -- load up numbers 0 – 9
 set @count = 48
 while @count <=57
 begin
     set @characters = @characters + Cast(CHAR(@count) as char(1))
     set @count = @count + 1
 end
end

if @useUpperCase = 1
begin
 -- load up lowercase letters a – z
 set @count = 97
 while @count <=122
 begin
     set @characters = @characters + Cast(CHAR(@count) as char(1))
     set @count = @count + 1
 end
end

set @count = 0
set @string = ''

-- If you specify a character set to use, the bit flags get ignored.
if Len(@charactersToUse) > 0
begin
 while charindex(@charactersToUse,' ') > 0
 begin
  set @charactersToUse = replace(@charactersToUse,' ','')
 end

 if Len(@charactersToUse) = 0
  raiserror('Cannot use an empty character set.',16,1)

 while @count <= @stringLength
 begin
    
set @string = @string +
SUBSTRING(@charactersToUse,CAST(ABS(CHECKSUM(NEWID()))*RAND(@count) as
int)%LEN(@charactersToUse)+1,1)
     set @count = @count + 1
 end
end
else
begin
 while @count <= @stringLength
 begin
    
set @string = @string +
SUBSTRING(@characters,CAST(ABS(CHECKSUM(NEWID()))*RAND(@count) as
int)%LEN(@characters)+1,1)
     set @count = @count + 1
 end
end

end
GO



祝一切顺利.
--Amit



All the best.
--Amit


请参阅以下链接:

http://blog.sqlauthority.com/2007 /04/29/sql-server-random-number-generator-script-sql-query/ [ http://www.sql-server-helper.com/tips/generate-random- numbers.aspx [^ ]
see the below link:

http://blog.sqlauthority.com/2007/04/29/sql-server-random-number-generator-script-sql-query/[^]

http://www.sql-server-helper.com/tips/generate-random-numbers.aspx[^]


尝试一下.


try this.


DECLARE @randstring AS char(30)
SELECT @randstring =replace(cast(newid() AS varchar(36))+cast(newid() AS varchar(36)),'-','')
SELECT @randstring 


这篇关于如何在SQL Server中使用A-F和0-9之间的字符生成随机数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆