Dynamics AX 2012唯一索引允许空值

时间:2016-02-18 16:12:14

标签: indexing axapta dynamics-ax-2012

在ANSI SQL中,您可以创建一个带有WHERE子句的唯一索引,该子句将忽略“”值。

有没有办法在Dynamics AX中执行此操作?

为表添加唯一索引,该表只关注索引列包含数据的行?

1 个答案:

答案 0 :(得分:3)

我不认为这是可能的,因为Dynamics AX不允许空值:

  

Microsoft Dynamics AX不支持许多其他数据库管理系统(DBMS)中提供的空值概念。 Microsoft Dynamics AX中的字段始终具有类型和值。

- Null Values for Data Types [AX 2012],MSDN

<强>更新

我认为在Dynamics AX中设置“选择性”索引并不可能只对某些值起作用而忽略其他值。为此,您必须直接在SQL数据库中设置索引。当然,数据字典同步会删除这样的索引。您可能可以编写一个sql过程来创建索引并自定义执行同步的代码,以便在每次同步后调用该过程。不过,我建议不要使用这样的解决方案,因为它容易出错,并且会绕过数据字典同步,这是Dynamics AX的核心机制之一。

另一种方法是将您的字段与''值分隔成一个单独的表,如果您有该字段的实际值,则只在该表中创建记录。然后外部将新表与现有表连接。

另一种方法可能是不使用索引,而是编写数据验证程序,检查字段中的非空值是否已经存在。