MS Dynamics CRM - GUID базы данных

Я использовал 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 или просто идентификаторы, и как мне узнать?


person Thanatos    schedule 20.05.2009    source источник
comment
Я тоже это заметил. Они называют свои идентификаторы направляющими везде, где я могу видеть, но нет четкого указания.   -  person brendan    schedule 04.06.2009


Ответы (1)


Вы правы, что это 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

person David McDonald    schedule 04.06.2009
comment
Вау, спасибо. Я не был уверен, что когда-нибудь получу прямой ответ на этот вопрос. Провел еще несколько исследований и обнаружил следующее: fotia.co.uk/fotia/ DY.19.NewSequentialId.aspx - кажется, что их можно назвать GUID, поскольку в них есть ваш MAC. - person Thanatos; 04.06.2009
comment
Интересная статья, спасибо, что разместили. Это объясняет, почему CRM использует NEWSEQUENTIALID () - из-за преимуществ db perf. - person David McDonald; 04.06.2009
comment
Мне интересно, @DavidMcDonald, есть ли у вас источник ссылки для цитирования. Я четко вижу последовательные значения во вставленных записях сущностей, но я понятия не имею, как CRM их генерирует ... не определено ограничение по умолчанию и нет настройки идентичности ... - person Saul Dolgin; 16.01.2013
comment
Связанный вопрос: кто-нибудь знает, может ли один и тот же GUID использоваться в качестве PK для записей разных типов сущностей или GUID PK должен быть уникальным для всех типов сущностей? - person keerz; 15.03.2013