반응형
NEWID() 함수는 MSSQL에서 고유 식별자(GUID)를 생성할 때 사용하는 함수입니다.
NEWID() 함수 특징
- NEWID() 함수로 생성된 GUID는 호출될 때마다 중복되지 않는 임의의 값을 반환합니다.
- NEWID() 함수와 RFC4122와 호환되고 있습니다. 즉 반환 값은 중복되지 않으면서 랜덤으로 값을 반환합니다.
- NEWID()는 32 hex code로 되어 있는 Uniqueidentity 타입 함수입니다.
NEWID() 함수 사용법
SELECT 절에서 NEWID() 사용법.
- 기본 소스 예제입니다.
--1.SELECT 절에서 NEWID() 사용법.
SELECT NEWID() AS 'NewId' ;
테이블 생성 때 NEWID() 사용법.
- NEWID() 함수를 칼럼의 기본값으로 데이터를 입력할 때 임의의 값을 insert 할 수 있습니다.
-- 2. 테이블 생성시 NEWID() 사용법.
DROP TABLE IF EXISTS InfoForIdentity;
CREATE TABLE InfoForIdentity (
NewIdKey uniqueidentifier NOT NULL DEFAULT NEWID(),
UserId varchar(255)
);
INSERT INTO InfoForIdentity (UserId)
VALUES (1001),(1002),(1003),(1004),(1005);
SELECT UserId, NewIdKey
FROM InfoForIdentity;
데이터 타입 및 변수 사용 방법.
- 데이터 타입은 uniqueidentifier으로 선언해야 사용할 수 있습니다.
- NEWID() 계속 실행해서 중복되는 값이 있는지 확인하세요.
-- 3. 데이터 타입 및 변수 사용방법.
DECLARE @NewIdKey uniqueidentifier ;
SET @NewIdKey = NEWID();
SELECT @NewIdKey;
NEWID() 이용하여 Random으로 정렬.
- order by에 newid() 함수 사용 예제입니다.
-- 4. NEWID() 이용하여 Random 으로 정렬
DROP TABLE IF EXISTS InfoForIdentityRandom;
CREATE TABLE InfoForIdentityRandom (
UserId int,
UserNm varchar(255)
) ON [PRIMARY];
INSERT INTO dbo.InfoForIdentityRandom(UserId,UserNm) VALUES
(1, N'Ken'),(2, N'Brian'),(3, N'Stephen'),(4, N'Michael'),(5, N'Linda');
SELECT TOP 10 *
FROM InfoForIdentityRandom
ORDER BY NEWID();
NEWID() to varchar 형으로 변환.
- UNIQUEIDENTIFIER 타입을 varchar, cast를 이용하여 string 형태로 변환할 수 있습니다.
-- NEWID()을 varchar 형으로 변환
DECLARE @IdentityToString UNIQUEIDENTIFIER = NEWID()
SELECT CAST(@IdentityToString AS VARCHAR(50))
SELECT CONVERT(VARCHAR(50),@IdentityToString)
SELECT @IdentityToString;
NEWID() 함수 중복
- 중복이 걱정되는 경우는 해당일에 unique index 생성하는 방법도 있습니다.
반응형