MS Dynamics CRM - GUID базы данных - PullRequest
8 голосов
/ 20 мая 2009

Я использовал SDK для CRM и распечатал PK на нескольких экземплярах одного из наших объектов. Я повторил это с отфильтрованными представлениями базы данных и получил тот же ответ:

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

Они не являются действительными идентификаторами GUID. С одной стороны, они выглядят неправильно - они почти идентичны, свойство, которого GUID не было со времен старых версий GUID версии 1 и 2, которые основывались на MAC-адресах и времени часов. Более того, однако, тот факт, что определенный клев в GUID указывает версию GUID - этот клев здесь неверен. (Первый кусок третьего раздела, то есть: 1a6c691d-391a - ** d ** e11-8b0e-0050568407cb) - допустимые значения 1-5) (Генерация GUID с использованием генератора GUID MS - этот слот всегда будет 4. (По крайней мере, для версии, которую я имею.))

Это GUID, или просто идентификаторы, и как мне узнать?

1 Ответ

10 голосов
/ 04 июня 2009

Вы правы, что они являются GUID и последовательны. Эти ключи не генерируются CRM. Они генерируются SQL Server.

SQL Server имеет тип GUID, называемый uniqueidentifier. Он может быть настроен как NEWID () или NEWSEQUENTIALID (). NEWID () будет генерировать новый GUID каждый раз. NEWSEQUENTIALID () генерирует GUID в первый раз, а затем последовательно увеличивает его при последующих вставках в базу данных.

Итак, вы обнаружили, что Dynamics CRM настроен для NEWSEQUENTIALID ().

Подробнее об этом здесь: http://www.mssqltips.com/tip.asp?tip=1600

...