2009-05-20 7 views
8

저는 CRM 용 SDK를 사용하고 당사 엔티티 중 하나의 인스턴스에 PK를 인쇄했습니다. 데이터베이스의 필터링 된보기를 사용하여 반복하고 동일한 대답을 얻었습니다.MS Dynamics CRM - 데이터베이스 GUID

 
    1a6c691d-391a-de11-8b0e-0050568407cb 
    bd7b0ff0-391a-de11-8b0e-0050568407cb 
    ed272bfe-391a-de11-8b0e-0050568407cb 
    ... and so on ... 

이들은 유효한 GUID로 보이지 않습니다. 하나는 틀린 것입니다. 거의 동일합니다. 이전 버전 GUID에서 GUID가 없었던 속성 1 & MAC 주소와 시계 시간을 기반으로 한 2 개의 GUID. 또한 GUID의 특정 니블이 GUID의 버전을 나타냅니다. 즉, 여기서 니블이 올바르지 않습니다. (세 번째 섹션의 첫 번째 니블, 즉 : 1a6c691d-391a - ** d ** e11-8b0e-0050568407cb) - 유효한 값은 1-5 임) (MS의 GUID 생성기를 사용하여 GUID 생성 - 해당 슬롯은 항상 4 . 적어도 내가 갖고있는 버전의 경우)

이 GUID 또는 ID는 알 수 있습니까?

+0

나는 이것도 발견했습니다. 그것들은 내가 볼 수있는 모든 곳에서 그들의 ID를 guids로 지칭하지만 명확한 표시는 없습니다. – brendan

답변

10

GUID가 맞고 순차적이라는 것이 맞습니다. 이 키는 CRM에 의해 생성되지 않습니다. SQL Server에서 생성됩니다.

SQL Server에는 uniqueidentifier라는 GUID 유형이 있습니다. NEWID() 또는 NEWSEQUENTIALID()로 구성 할 수 있습니다. NEWID()는 매번 새로운 GUID를 생성합니다. NEWSEQUENTIALID()는 처음으로 GUID를 생성 한 다음 후속 데이터베이스 삽입시이를 순차적으로 증가시킵니다.

그래서 Dynamics CRM이 NEWSEQUENTIALID()로 구성되었음을 확인했습니다.

여기에 대한 자세한 정보는 여기를 참조하십시오 : http://www.mssqltips.com/tip.asp?tip=1600

+0

와우, 고마워. 나는 그 사람에게 곧바로 대답 할 수 있을지 확신하지 못했습니다. 더 많은 조사를 해보니 다음과 같은 사실을 발견했습니다. http://www.fotia.co.uk/fotia/DY.19.NewSequentialId.aspx - MAC에 MAC이 있으므로 GUID라고 할 수 있습니다. – Thanatos

+0

흥미로운 기사, 게시 해 주셔서 감사합니다. CRM이 NEWSEQUENTIALID()를 사용하는 이유를 설명합니다. 왜냐하면 db perf 이점 때문입니다. –

+0

내가 인용 할 참조 소스가 있다면 @DavidMcDonald가 궁금합니다. 내가 명확하게 삽입 된 엔티티 레코드에 순차 값을보고 있지만 CRM이 이들을 생성하는 방법을 잘 모르겠다 ... 정의 된 기본 제약 조건과 신원 설정이 없습니다 ... –