为什么所有RecIds都以5637144576开头?

Wes*_*ooy 3 axapta dynamics-ax-2009 dynamics-ax-2012

这是一个完全没有意义的问题......但我想知道答案:

为什么Ax2012中的所有RecIds(以及我认为的所有v2.5以后)都以5637144576开头?为什么不从RecId 1开始,就像在TempDB表中一样?这必须是旧版本的遗留物.

我记得客户在旧版本中耗尽了RecId的情况,据说可以通过使每个表的RecIds唯一并将其更改为64位数据类型来解决.但仍然有这种变化,它从一个特定的数字开始.

只是好奇...

Jan*_*sen 7

这是一个纯粹的推测性答案......

5637144576恰好是0x150000000,不能存储在32位整数中.当RecId从32位增长到64位(在AX 4.0中)时,这对于测试目的很重要.

此外,任何新的RecId都保证不会与RecIdAX 3.0中的旧版本发生冲突.这对升级过程很重要.

为什么不选择0x100000000或4294967296?
因为在十进制中这很难区分4294967196和其他小数字.

为什么不选择5000000000十进制?
因为我们程序员最好以十六进制计算!

另请参阅Dynamics AX 2012中的公共表中的RecIds是否唯一?