바다토리 웨어하우스
MSSQL 중복없는 랜덤코드 생성하기 본문
반응형
상품권 코드나 Survey코드 등 중복되지 않는 고유하게 코드를 만들어야 할 때가 있습니다.
이런 경우, 별도로 코드를 생성하는 로직을 사용해야 하는데, 숫자와 영문자가 조합된 코드를
생성할 수 있는 스크립트를 만들어 보았습니다.
생성코드의 자리수와 또 개수를 임의로 지정하여 만들 수 있습니다.
Declare @i bigint, @RndCode varchar(10), @chLen int, @RandCnt bigint
/*생성할 변수 정보*/
Set @chLen = 5 -- 코드 길이수
Set @RandCnt = 100000 -- 생성할 코드 수
Set @i=1
While @i<=@RandCnt
Begin
Set @RndCode = (Select Left(Replace(Replace(Replace(newid(),'-',''),'I','H'),'O','N'),@chLen))
If Not Exists(Select RandCode From Random_ID_LIst Where RandCode=@RndCode and ch_length=@chLen)
Begin
Insert into Random_ID_LIst(ch_length, RandCode) values(@chLen, @RndCode)
Set @i=@i+1
End
End
@chlen으로 생성할 코드 자릿수를 지정해줍니다.
@RandCnt는 랜덤코드를 몇 개를 만들 것인지 개수 지정을 합니다
RandCode만큼 While문을 돌면서 코드를 생성하며, Exists를 이용하여 해당 테이블에 다음으로 생성된 랜덤 코드가 이미 들어 있는지 중복체크를 하게 됩니다.
5자리 수로 생성한 랜덤 코드입니다.
이상. 가끔 코드를 만들때 유용하게 사용할 수 있네요.
반응형
'IT > mssql' 카테고리의 다른 글
DB복원 후 원래 계정으로 로그인이 안될때 방법 (0) | 2022.05.26 |
---|---|
1년 전체 주말 등록하는 쿼리 스크립트 (0) | 2022.05.24 |
SQL에서 1024개 이상의 테이블 컬럼 만들기 (0) | 2022.05.23 |
MSSQL을 이용한 JSON데이터 처리 방법 (0) | 2022.05.12 |
MSSQL 많이 활용하는 cursor문 (0) | 2022.05.03 |
Comments