SQL 서버 GUID

Sql Seobeo Guid



이번 포스팅에서는 SQL Server에서 uniqueidentifier 타입을 사용하는 방법에 대해 알아보겠습니다. 또한 NEWID() 및 NEWSEQUENTIALID() 함수를 사용하여 GUID 값을 생성합니다.

SQL Server 고유 식별자 유형

열 또는 지역 변수에 사용되는 16바이트 GUID 값입니다. NEWID() 및 NEWSEQUENTIALID() 함수를 사용하여 uniqueidentifier 유형 값을 생성할 수 있습니다.

xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx 형식의 문자열 값을 변환하여 GUID 값을 생성할 수도 있습니다. 여기서 x는 0 – 9 범위의 16진수입니다.







GUID 값의 '임의성'으로 인해 GUID 값이 데이터베이스 또는 서버 전체에서 고유할 수 있음이 보장됩니다. 이는 주어진 값을 고유하게 식별하기 위한 우수한 데이터 유형을 만듭니다.



SQL 서버 NEWID() 함수

NEWID() 함수를 사용하면 uniqueidentifier 유형의 새로운 고유 값을 생성할 수 있습니다. 구문은 다음과 같습니다.



변화 ( )

예를 들어:





@gid uniqueidentifier 선언;
set @gid = 변경();
@gid를 gid로 선택하십시오.

위의 문은 GUID 값을 다음과 같이 반환해야 합니다.

기드
873412E2-A926-4EAB-B99F-A1E47E727355

SQL 서버 NEWSEQUENTIALID() 함수

이 함수를 사용하면 고유한 GUID 값을 순차적으로 생성할 수 있습니다. 이전에 생성된 GUID보다 큰 GUID 값을 생성하여 작동합니다.



이는 NEWID() 함수를 사용하여 다음 GUID 값을 수동으로 결정하는 것이 아니라 순차적으로 값을 생성하므로 행 식별자로 사용하기에 유용합니다.

함수 구문은 다음과 같습니다.

NEWSEQUENTIALID ( )

SQL Server GUID를 행 식별자로 사용

다음 예에서는 주어진 열에 대한 행 식별자로 newsequentialid() 함수를 사용하는 방법을 보여줍니다.

테이블 항목 생성(
id uniqueidentifier not null 기본 newsequentialid() 기본 키,
서버_이름 varchar(50),
server_address varchar(255) null이 아님,
compression_method varchar(100) 기본값 '없음',
size_on_disk float null이 아님,
size_compressed 플로트,
total_records int null이 아님,
init_date 날짜
);
끼워 넣다
~ 안으로
항목(server_name,
서버 주소,
압축 방법,
size_on_disk,
크기 압축,
total_records,
초기화 날짜)

('MySQL','localhost:3306','lz77',90.66,40.04,560000,'2022-01-02'),
('레디스','localhost:6307','스내피',3.55,998.2,100000,'2022-03-19'),
('PostgreSQL','localhost:5432','pglz',101.2,98.01,340000 ,'2022-11-11'),
('Elasticsearch','localhost:9200','lz4',333.2,300.2,1200000,'2022-10-08'),
('몽고디비','localhost:27017','스내피',4.55,4.10,620000,'2021-12-12'),
('아파치 카산드라','localhost:9042','zstd',300.3,200.12,10000000,'2020-03-21');

위의 예에서 ID 열을 uniqueidentifier 유형으로 설정하고 기본값을 newsequentialid() 함수에 의해 생성된 값으로 설정했습니다.

결과 테이블은 다음과 같습니다.

항목에서 *를 선택하십시오.

산출:

GUID 값을 사용하면 엄격한 고유성을 제공할 수 있지만 특정 값을 디버깅하거나 선택할 때 어려울 수 있습니다.

결론

이 가이드에서는 SQL Server의 uniqueidentifier 형식에 대해 알아보았습니다. NEWID() 및 NEWSEQUENTIALID() 함수를 사용하여 GUID 값을 생성하는 방법도 배웠습니다.