재우니의 블로그

mssql 의 rand() 와  newid() 조합으로 난수값 문자1 + 숫자 난수 9자리 생성해 봤습니다.

Create Table #TEST1(
 PrizeNumber  Varchar(10)
)

DECLARE @i int
SET @i = 1 

WHILE(@i < 10000)
 BEGIN
	insert into #TEST1 (PrizeNumber) values( 
		'K' + CONVERT(VARCHAR(9),CONVERT(INT,RAND(CAST(NEWID() AS VARBINARY )) * 899999999 + 100000000))
	)	
 SET @i = @i + 1

END

select len(PrizeNumber) from #TEST1 where len(PrizeNumber) > 9

drop table #TEST1

1천번 정도 돌려봤는데, 중복된 값이 존재하지 않았습니다. 자리숫자도 정확하게 10자리가 되고요.

K715844590
K344857360
K409153178
K665529312
K862740726
K653649458
K367433833
K820693313
K884605899
K685176111
K333481809

......