NEWSEQUENTIALID()(Transact-SQL)
Windows가 시작된 이후에 지정한 컴퓨터에서 이 함수가 이전에 생성한 모든 GUID보다 큰 GUID를 만듭니다. Windows를 다시 시작한 후 GUID가 더 낮은 범위에서 다시 시작될 수 있지만 여전히 전역적으로 고유합니다. GUID 열이 행 식별자로 사용되는 경우 NEWSEQUENTIALID를 사용하면 NEWID 함수를 사용할 때보다 더 빠를 수 있습니다. 그 이유는 NEWID 함수의 경우 임의 작업이 발생하고 캐시된 데이터 페이지를 거의 사용하지 않기 때문입니다. 또한 NEWSEQUENTIALID를 사용하면 데이터 및 인덱스 페이지를 완전히 채울 수 있습니다.
중요 |
---|
개인 정보 보호가 중요한 경우에는 이 함수를 사용하지 마십시오. 다음번에 생성되는 GUID 값을 추측할 수 있으므로 이 GUID와 관련된 데이터에 액세스할 수 있습니다. |
NEWSEQUENTIALID는 Windows UuidCreateSequential 함수에 대한 래퍼입니다.
구문
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는 원본 컴퓨터에 네트워크 카드가 있는 경우에만 여러 컴퓨터에서 고유합니다.