다음을 통해 공유


NEWSEQUENTIALID(Transact-SQL)

적용 대상:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceMicrosoft Fabric의 SQL 데이터베이스

Windows가 시작된 이후에 지정한 컴퓨터에서 이 함수가 이전에 생성한 모든 GUID보다 큰 GUID를 만듭니다. Windows를 다시 시작한 후 GUID는 하위 범위에서 다시 시작할 수 있지만 여전히 전역적으로 고유합니다. GUID 열을 행 식별자로 사용하는 경우 함수를 사용하는 것보다 더 빠르게 사용할 NEWSEQUENTIALIDNEWID 수 있습니다. 이 함수는 임의 NEWID 작업을 발생시키고 캐시된 데이터 페이지를 더 적게 사용하기 때문입니다. 또한 사용하면 NEWSEQUENTIALID 데이터 및 인덱스 페이지를 완전히 채우는 데 도움이 됩니다.

중요

개인 정보 보호가 중요한 경우 이 함수를 사용하지 마세요. 생성된 다음 GUID의 값을 추측하여 해당 GUID와 연결된 데이터에 액세스할 수 있습니다.

NEWSEQUENTIALID는 일부 바이트 순서 섞기가 적용된 Windows UuidCreateSequential 함수에 대한 래퍼입니다.

경고

함수에는 UuidCreateSequential 하드웨어 종속성이 있습니다. SQL Server에서 데이터베이스(예: 포함된 데이터베이스)를 다른 컴퓨터로 이동할 때 순차 값의 클러스터가 나타날 수 있습니다. Azure SQL Database에서 Always On을 사용하는 경우 데이터베이스가 다른 컴퓨터로 장애 조치(failover)되면 순차적 값의 클러스터가 개발됩니다.

Transact-SQL 구문 표기 규칙

구문

NEWSEQUENTIALID ( )

반환 형식

uniqueidentifier

설명

NEWSEQUENTIALID DEFAULT 형식의 테이블 열에 대한 제약 조건과 함께 만 사용할 수 있습니다. 예를 들면 다음과 같습니다.

CREATE TABLE myTable
(
    ColumnA UNIQUEIDENTIFIER DEFAULT NEWSEQUENTIALID()
);

식에 NEWSEQUENTIALID 사용되는 경우 DEFAULT 다른 스칼라 연산자와 결합할 수 없습니다. 예를 들어 다음 코드를 실행할 수 없습니다.

CREATE TABLE myTable
(
    ColumnA UNIQUEIDENTIFIER DEFAULT dbo.myfunction(NEWSEQUENTIALID())
);

앞의 예에서 myfunction()uniqueidentifier 값을 받아서 반환하는 사용자 정의 스칼라 함수입니다.

NEWSEQUENTIALID 는 쿼리에서 참조할 수 없습니다.

GUID를 생성하여 리프 인덱스 수준에서 페이지 분할 및 임의 IO를 줄일 수 NEWSEQUENTIALID 있습니다.

사용하여 NEWSEQUENTIALID 생성된 각 GUID는 해당 컴퓨터에서 고유합니다. 사용하여 NEWSEQUENTIALID 생성된 GUID는 원본 컴퓨터에 네트워크 카드가 있는 경우에만 여러 컴퓨터에서 고유합니다.