我正在使用SDK for CRM,并在我们的一个实体的一堆实例上打印出PK。我用数据库的过滤视图重复了它,得到了相同的答案:
1a6c691d-391a-de11-8b0e-0050568407cb bd7b0ff0-391a-de11-8b0e-0050568407cb ed272bfe-391a-de11-8b0e-0050568407cb ... and so on ...
这些似乎不是有效的GUID。首先,他们看错了 - 它们几乎是相同的,这是GUID自旧版本1和版本以来没有的属性。 2个基于MAC地址和时钟时间的GUID。而且,事实上GUID中的某个半字节表示GUID的版本 - 这里的半字节不正确。 (第三部分的第一个半字节,即:1a6c691d-391a - ** d ** e11-8b0e-0050568407cb) - 有效值为1-5)(使用MS的GUID生成器生成GUID - 插槽将始终为4.(至少对于我的版本。))
这些GUID,还是ID,以及我如何知道?
答案 0 :(得分: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