2014. 7. 22. 11:42
MSSQL
1. 랜덤 쿠폰 번호 발행하기
NEWID() 함수를 이용한 방법을 소개하도록 하겠다.
먼저 NEWID() 함수의 속성부터 알아보도록 하자.
1. NEWID() 는 uniqueidentifier 데이타 형식을 가진다.
2. GUID(전역 고유 식별자) 역할을 하는 16바이트 이진 값을 저장한다.
3. GUID는 고유한 이진 숫자 값이다.
4. 전 세계 모든 컴퓨터는 고유한 GUID 값을 생성한다.
5. GUID의 주된 용도는 여러 사이트에 많은 컴퓨터가 있는 네트워크에서 고유한 식별자를 지정하는 것이다.
실제 SQL 문에서 실행되는 예제를 보도록 하자.
DECLARE @NEWID_TEMP VARCHAR(255) SET @NEWID_TEMP = NEWID() SELECT @NEWID_TEMP SELECT CONVERT(VARBINARY(255), @NEWID_TEMP) /***************************************************************************************** 문자열 형식 : ABD26C1E-3781-405E-9D77-4B947DD7CBD0 이진 형식 : 0x41424432364331452D333738312D343035452D394437372D344239343744443743424430 *******************************************************************************************/
NEWID 를 이용한 전체 소스 코드임...
SET NOCOUNT ON DECLARE @MAX_COUNT INT DECLARE @INDEX INT DECLARE @COUPON_NUM VARCHAR(10) DECLARE @COUPON_TYPE VARCHAR(10) DECLARE @COUPON_PREFIX VARCHAR(10) SET @MAX_COUNT = 1000 SET @INDEX = 1 SET @COUPON_PREFIX = 'L' SET @COUPON_TYPE = 'C_TYPE' WHILE @INDEX <= @MAX_COUNT BEGIN SET @COUPON_NUM = LEFT(REPLACE(NEWID(),'-',''), 10) INSERT INTO dbo.Dior_Coupon_201104 (COUPON_TYPE, COUPON_NUM) VALUES (@COUPON_TYPE, @COUPON_NUM) SET @INDEX = @INDEX + 1 END
2. 순차적 쿠폰번호 발행하기
쿠폰 번호를 발행하는데 순자적으로, 즉 ETP0001, ETP0002 ,ETP0003 식으로 발행하는 것을 해 보자.
키 포인트는 숫자를 문자열로 변환하면서 자릿수를 맞추어줘야 한다. 이때 사용하는 함수가 REPLCATE 함수를 이용하면 된다.
전제 소스는 아래와 같다.
SET NOCOUNT ON DECLARE @MAX_COUNT INT DECLARE @INDEX INT DECLARE @COUPON_NUM VARCHAR(10) DECLARE @COUPON_TYPE VARCHAR(10) DECLARE @COUPON_PREFIX VARCHAR(10) SET @MAX_COUNT = 1000 SET @INDEX = 1 SET @COUPON_PREFIX = 'L' SET @COUPON_TYPE = 'C_TYPE' WHILE @INDEX <= @MAX_COUNT BEGIN SET @COUPON_NUM = @COUPON_PREFIX + REPLICATE('0', 4 - DATALENGTH(CONVERT(VARCHAR(4),@INDEX))) + CONVERT(VARCHAR(4),@INDEX) INSERT INTO dbo.Dior_Coupon_201104 (COUPON_TYPE, COUPON_NUM) VALUES (@COUPON_TYPE, @COUPON_NUM) SET @INDEX = @INDEX + 1 END
'MSSQL' 카테고리의 다른 글
다른 SQL Server로 TDE 보호 데이터베이스 이동 (0) | 2014.07.22 |
---|---|
테이블별 데이터 개수, 인덱스 사이즈, 생성일, 마지막 수정일을 알고 싶을때... (0) | 2014.07.22 |
모든 데이타베이스 숨기기 (0) | 2014.07.22 |
차집합 구하기 (0) | 2014.07.22 |
랜덤 알파펫 조합하기 (0) | 2014.07.22 |