2017-05-13 5 views
0

은 내가 GUID를 완전히 임의의 값을 가져야한다고 생각했지만, 나는 다음과 같은 ID를 내 테이블에 SQL 서버에 의해 생성 발견했습니다SQL Server는 Guids를 어떻게 생성합니까?

15B308E5-FC37-E711-9C42-185E0F1C3427 
52B09CEE-FC37-E711-9C42-185E0F1C3427 
BE9553FF-FC37-E711-9C42-185E0F1C3427 
BF9553FF-FC37-E711-9C42-185E0F1C3427 
CE169E05-FD37-E711-9C42-185E0F1C3427 

그들은 나를 위해 충분히 랜덤하지 않는 것 :)

그래서 궁금한 점은 SQL Server가 이러한 값을 어떻게 생성합니까?

미리 감사드립니다.

+2

'NEWID()'에 대해 문서화 된 유일한 것은 [RFC4122] (https://www.ietf.org/rfc/rfc4122.txt)를 준수한다는 것입니다. –

답변

3

예제의 GUID가 NEWSEQUENTIALID() 기본 제약 조건으로 생성 된 것처럼 보입니다. 이 경우 SQL Server는 UuidCreateSequential Win32 API를 사용하여 일부 바이트 스와핑을 사용하여 마지막 컴퓨터를 다시 시작한 후 순차적으로 정렬 된 GUID 값을 생성합니다.