由于将ObjectID用作关系中的主键不是一个好主意,因此需要使用其他一些列。是否可以使用DBMS序列来填充版本化要素类中的主键列,还是需要编写arcobjects代码来做到这一点?
我听说可以使用全局ID,但是非GIS DBA维护相关表经常对此想法不满意。
由于我的记忆力很差,并且可能无法正常工作,因此将我的答案转为评论:很多年前,我尝试在adds表上使用插入触发器。如果我没记错的话,那确实可行。我最终(并且很快)使用了ArcObjects解决方案(称为存储过程),因为它(对我来说)更容易,因为在添加/版本化新要素类时不必编写新触发器。
—
杰·康明斯
我认为这是带有空检查的AFTER INSERT触发器(oracle),因此如果移动新行,它将获得现有的主键值。如果为null,则将填充。也许我错了,而且工作不正常,我没有意识到。正在使用什么数据库?
—
杰·康明斯
@Jay感谢您的阐述。我问这个问题的主要原因是,确定除我为此编写的arcobjects代码之外,是否还有其他方法可以解决此问题。我不想告诉别人,如果不进行深入研究,我的解决方案是唯一可能的解决方案。如果是这样,维护它有多困难。我只是偶尔编写存储过程,而大多数存储过程都在sql服务器上。我怀疑有一种在dbms级别(而不是arcobjects)执行此操作的方法,但从未在所有dbms上仔细研究过。
—
Kirk Kuykendall