[AX]AX2012开发新特性TempDB临时表

在做一些报表的时候,我们常常用到临时表用来存储一些临时数据,以前版本的AX只使用客户端内存保存临时表数据,SELECT的时候不能连接其他表,有很多的不方便,AX2012增加了TempDB类型的临时表,和In-Memory的临时表相比有以下特点:

  • 它是利用了SQL数据库的临时表,数据存储在服务器的数据库中,所以可以用在X++的SELECT JOIN中
  • 可以设置为分公司的还是全局的(SaveDataPerComapny属性)
  • 可以用在.Net Bussiness connector中
  • 可以有外键字段,但是其他表不能使用它的主键做外键
  • 可以有索引
  • 可以有方法但是不能重载
  • 可以用在Query中
  • 支持数据库事务
  • 没有Configuration key。

它也有一些限制:

  • 不能是有效时间状态的表(Valid time sate table)
  • 不能有delete actions
  • 不支持纪录级权限
  • 不能使用Table browser浏览数据
  • 不能包含在表集(table collection)
  • 不能用在View中

在AOT中设置一个表的TableType为TempDB就创建了一个TempDB的临时表,表在第一次增删改的SQL操作时创建,释放有几种情况:

  • 表变量在X++作用域外
  • AOS重启
  • 数据库重启
  • 客户端关闭,释放客户端初始化的临时表
  • 在Online users中终止用户会话

临时表的其他操作和正常表类似,不再赘述,更多内容参见MSDN:http://msdn.microsoft.com/en-us/library/gg845661.aspx

原文地址:https://www.cnblogs.com/duanshuiliu/p/2637822.html