这是一个完全没有意义的问题......但我想知道答案:
为什么Ax2012中的所有RecIds(以及我认为v2.5以后的所有内容?)都以5637144576开头?为什么不从RecId 1开始,就像在TempDB表中一样?这必须是旧版本的遗留物。
我记得客户在旧版本中耗尽了RecId的情况,据说可以通过使每个表的RecIds唯一并将其更改为64位数据类型来解决。但是仍然有这个改变,它从一个特定的数字开始。
好奇......
答案 0 :(得分:7)
这是一个纯粹的推测性答案......
5637144576恰好是0x150000000,不能存储在32位整数中。当RecId
从32位增长到64位(in AX 4.0)时,这对于测试目的很重要。
此外,任何新的RecId
都不会与AX 3.0中的旧RecId
发生冲突。这对升级过程很重要。
为什么不选择0x100000000或4294967296?
因为在十进制中,这很难与4294967196和其他小数字区分开来。
为什么不选择5000000000十进制?
因为我们programmers best calculate in hex!
另见Are RecIds unique across Common tables in Dynamics AX 2012?
答案 1 :(得分:0)
此值(5637144576)在AX数据库的存储过程(sp_GetNextRecId)中进行了硬编码。