Связь с Informix из SQL Server - PullRequest
       10

Связь с Informix из SQL Server

1 голос
/ 22 октября 2010

Правильно ... У меня есть программа, над которой я работаю.

Urgh. Даже описание этого заставляет меня содрогаться ... Хорошо, хорошо.

Каждую ночь база данных, работающая на SQL Server 2000, подключается к базе данных Informix и копирует ее в SQL Server.

Доступ к данным Informix / SQL осуществляет программа, которую я обслуживаю, которая затем сохраняет некоторые данные в другой базе данных SQL Server 2000. Эти данные должны иметь ограничения внешнего ключа для данных Informix, но это не так.

Далее в дальнейшем данные из базы данных SQL помещаются обратно в базу данных Informix / SQL, а затем - обратно в фактическую базу данных Informix.

По сути, root моей проблемы заключается в том, что в базе данных SQL, не являющейся Informix, нет ограничений внешнего или первичного ключа. Ну, некоторые из таблиц имеют первичный ключ в бессмысленном столбце «ID», но они не соответствуют FK для других таблиц.

Мой вопрос: 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?

Я сделаю все возможное, чтобы ответить на любые вопросы, которые есть у кого-либо, но, насколько я могу судить, обоснование этих проектных решений было подлинным безумием, поэтому причины не будут особенно явными, так как я не могу их решить я ...

1 Ответ

1 голос
/ 23 октября 2010
  • Тьфу!
  • Неудачи (в беспорядке, который ты унаследовал)!
  • Удачи (твоя работа исправляет беспорядок)!

На какой версии Informix и на какой платформе (тип машины, o / s) он работает?

Есть ли какая-либо причина (кроме того, что она сломается, потому что данные беспорядочные), которую вы можетене обновлять схему Informix для обеспечения соблюдения реальных ограничений RI.Но вам, вероятно, нужно знать, насколько ужасен беспорядок, чтобы вы могли начать процесс очистки.IDS (Informix Dynamic Server) действительно имеет «таблицы нарушений», которые можно использовать для отслеживания проблемных строк данных. «START VIOLATIONS» и «STOP VIOLATIONS» - это операторы, которые нужно искать в «Руководстве по SQL для Informix: руководство по синтаксису».Необходимо выгрузить и удалить данные из одной таблицы перед началом загрузки данных с включенной проверкой нарушений.


После разъяснения возникает вопрос: «Можно ли установить ограничения ссылочной целостности для таблиц вбазы данных SQL Server, которые ограничены (ссылаются) на таблицы в базах данных Informix? "

Ответ на этот вопрос (к сожалению):

  • Нет

Большинство СУБД неохотно имеют ограничения ссылочной целостности между базами данных, не говоря уже о ограничениях между СУБД.

Ближайшим приближением будет наличие копий соответствующих таблиц Informix в базах данных SQL Server, но этовероятно, добавляет к нагрузке передачи данных.OTOH, очистка данных, вероятно, требует этого - возможно, будет возможно ослабить это копирование позже, когда данные станут более нормальными.Частично это зависит от волатильности ссылочных данных Informix - как часто строки добавляются или удаляются в ссылочные таблицы.

...