다음을 통해 공유


NEWSEQUENTIALID()(Transact-SQL)

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

중요 정보중요

개인 정보 보호가 중요한 경우에는 이 함수를 사용하지 마십시오. 다음 번에 생성되는 GUID 값을 추측할 수 있으므로 이 GUID와 관련된 데이터에 액세스할 수 있습니다.

NEWSEQUENTIALID는 Windows UuidCreateSequential 함수에 대한 래퍼입니다.

항목 링크 아이콘Transact-SQL 구문 표기 규칙

구문

NEWSEQUENTIALID ( )

반환 형식

uniqueidentifier

주의

uniqueidentifier 형식의 테이블 열에서는 DEFAULT 제약 조건에만 NEWSEQUENTIALID()를 사용할 수 있습니다. 예를 들면 다음과 같습니다.

CREATE TABLE myTable (ColumnA uniqueidentifier DEFAULT NEWSEQUENTIALID()) 

DEFAULT 식에서 NEWSEQUENTIALID()를 사용하면 다른 스칼라 연산자와 함께 사용할 수 없습니다. 예를 들어 다음을 실행할 수 없습니다.

CREATE TABLE myTable (ColumnA uniqueidentifier DEFAULT dbo.myfunction(NEWSEQUENTIALID())) 

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

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

NEWSEQUENTIALID()를 사용하여 GUID를 생성하면 인덱스의 리프 수준에서 페이지 경합을 줄일 수 있습니다.

NEWSEQUENTIALID()를 사용하여 생성된 각 GUID는 해당 컴퓨터에서 고유합니다. NEWSEQUENTIALID()를 사용하여 생성된 GUID는 원본 컴퓨터에 네트워크 카드가 있는 경우에만 여러 컴퓨터에서 고유합니다. GUID에 대한 자세한 내용은 uniqueidentifier 데이터 사용을 참조하십시오.

변경 내역

업데이트된 내용

Windows를 다시 시작할 경우 GUID에 적용되는 효과에 대한 설명을 추가했습니다.