从SQL Server与Informix进行通信

问题描述 投票:1回答:1

是的...我有一个程序正在维护。

嗯 甚至描述它都让我发抖...对,好吧。

每天晚上,运行在我们认为是SQL Server 2000的数据库上都会连接到Informix数据库,并将其复制到SQL Server中。

我正在维护的程序将访问Informix / SQL数据,然后该程序将一些数据存储在另一个SQL Server 2000数据库中。 该数据应在Informix数据上具有外键约束,但不是。

接下来,将来自SQL数据库的数据放回Informix / SQL数据库,然后再放回实际的Informix数据库。

基本上,我的问题的根源是非Informix SQL数据库上没有外键或主键约束。 好吧,有些表在无意义的“ ID”列上有一个主键,但是这些表并没有与其他任何表匹配。

我的问题是: Is it possible to link SQL Server 2000 to the native Informix database in some way, so that I can add foreign key constraints within the SQL database so that SQL Server can only create rows when it can refer to existing rows within the Informix database?

我会尽力回答任何人的任何问题,但据我所知,这些设计决策背后的原因是真正的精神错乱,所以我不会特别提出理由,因为我自己也无法解决这些问题。 ..

sql sql-server sql-server-2000 informix
1个回答
1
投票
  • 运气不好(在您继承的烂摊子上)!
  • 祝您好运(您的工作会解决问题)!

它在哪个版本的Informix以及哪个平台(机器类型,操作系统)上运行?

是否有一个原因(除了会因为数据混乱而损坏以外,还有其他原因)导致您无法更新Informix架构来强制执行真正的RI约束。 但是您可能需要了解混乱情况,才能开始清理过程。 IDS(Informix Dynamic Server)确实具有可用于跟踪有问题的数据行的“违规表”-“ START VIOLATIONS”和“ STOP VIOLATIONS”是《 Informix SQL指南:语法》手册中要查找的语句。需要在启用违规检查的情况下开始加载数据之前,先从一个表中卸载并删除数据。


澄清之后,问题似乎是“我可以在受Informix数据库中的表约束(引用)的SQL Server数据库中的表上设置参照完整性约束吗?”

答案是(可悲的):

  • 没有

大多数DBMS不愿意具有跨数据库参照完整性约束,更不用说跨DBMS约束了。

最接近的近似值是在SQL Server数据库中具有相关Informix表的副本,但这可能会增加数据传输的工作量。 OTOH,清理数据可能需要-一旦数据更接近理智,就有可能稍后放宽复制。 这部分取决于所引用的Informix数据的易变性-行多久被添加或删除到所引用的表中。

© www.soinside.com 2019 - 2024. All rights reserved.