簡體   English   中英

從SQL Server與Informix進行通信

[英]Communicating with Informix from SQL Server

是的...我有一個程序正在維護。

甚至描述它都讓我發抖...對,好吧。

每天晚上,運行在我們認為是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?

我會盡力回答任何人的任何問題,但據我所知,這些設計決策背后的原因是真正的精神錯亂,所以我不會特別提出理由,因為我自己也無法解決這些問題。 ..

  • 運氣不好(在您繼承的爛攤子上)!
  • 祝您好運(您的工作會解決問題)!

它在哪個版本的Informix以及哪個平台(機器類型,操作系統)上運行?

是否有一個原因(除了會因為數據混亂而損壞以外,還有其他原因)導致您無法更新Informix架構來強制執行真正的RI約束。 但是您可能需要了解混亂情況,才能開始清理過程。 IDS(Informix Dynamic Server)確實具有可用於跟蹤有問題的數據行的“違規表”-“ START VIOLATIONS”和“ STOP VIOLATIONS”是《 Informix SQL指南:語法》手冊中要查找的語句。需要在啟用違規檢查的情況下開始加載數據之前,先從一個表中卸載並刪除數據。


澄清之后,問題似乎是“我可以在受Informix數據庫中的表約束(引用)的SQL Server數據庫中的表上設置參照完整性約束嗎?”

答案是(可悲的):

  • 沒有

大多數DBMS不願意具有跨數據庫參照完整性約束,更不用說跨DBMS約束了。

最接近的近似值是在SQL Server數據庫中具有相關Informix表的副本,但這可能會增加數據傳輸的工作量。 OTOH,清理數據可能需要-一旦數據更接近理智,就有可能稍后放寬復制。 這部分取決於所引用的Informix數據的易變性-行多久被添加或刪除到所引用的表中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM