AOT中的每个表都有一个ID,如何在给出ID的情况下发现表名?
答案 0 :(得分:22)
查看SQL dictironary确实是正确的方法。 搜索FieldId等于0的行。 使用TSQL,这将告诉tableid 505的表名称
select NAME
from SQLDICTIONARY
where TABLEID = 505
and FIELDID = 0
答案 1 :(得分:17)
从X ++开始,使用tableId2Name函数。
从GUI中,选择工具/开发工具/应用程序对象/应用程序对象,并筛选TableInternalHeader的recordType和您要查找的表ID的parentId。
或者在AOT中,右键单击Tables并选择Find。在名称&位置选项卡,将搜索设置为所有节点。在Properties选项卡上,单击ID旁边的Selected,然后在Range字段中填写表id。
答案 2 :(得分:3)
我不知道这是不是你的答案, 如果你想给TableName提供他的ID,你可以使用 方法: str tableId2Name(int _tableid)
例如: 如果YourTable的ID:123456; 使用方法
tableId2PName(123456)
将返回str名称YourTable。
info(strFmt("%1" , tableId2PName(123456))); -> VideoStamp the name.
我使用了信息 https://msdn.microsoft.com/en-us/library/aa498759.aspx
我希望有用,问候!
答案 3 :(得分:2)
如果您需要 AX 系统表名称,则可以使用tableId2name
或DictTable.name
方法。
如果您需要 SQL 表名,请使用DictTable.name
DbBackend::Sql
方法
示例:
print new DictTable(tableNum(DirPartyTable)).name(DbBackend::Sql);
print new DictTable(tableNum(OMOperatingUnit)).name(DbBackend::Sql);
pause;
// result:
// DIRPARTYTABLE
// DIRPARTYTABLE
答案 4 :(得分:2)
或者您可以尝试:
select Name, AxId
from MicrosoftDynamicsAX_model.dbo.ModelElement (nolock)
where ElementType = 44
order by AxId
答案 5 :(得分:1)
在AOT中,转到“系统文档”节点。 在Tables节点中,找到SqlDictionary并使用表浏览器打开它。 使用您的ID过滤列TabId。
答案 6 :(得分:1)
在AOT中,转到“系统文档”节点。在Tables节点中,找到SqlDictionary并右键单击并使用表浏览器打开它。使用您的ID和fieldid == 0过滤列TabId,他将为您提供表格的名称。
答案 7 :(得分:1)
最简单的方法:
它提供了所有表名及其各自的ID。只需过滤你想要的东西。如果您知道表ID,请搜索该ID。如果你知道表名,请搜索它。