Могу ли я использовать DataTables для импорта данных из одной базы данных в другую? - PullRequest
0 голосов
/ 23 декабря 2009

Мне нужно создать быстрое и грязное решение для переноса данных из базы данных в другую. Это только используется для доказательства концепции. В долгосрочной перспективе мы будем использовать .NET Sync Framework.

Базы данных идентичны. Решение будет использоваться в качестве ОСА (иногда подключенного приложения).

  • Я прочитал, в какие таблицы они хотят перенести какой-то XML.
  • Отключить все ограничения на цель для каждой таблицы.
  • Для каждой таблицы, из которой они хотят перенести данные, я создаю DataTable из источника.
  • Создание таблицы данных, указывающей на цель.
  • Импортировать все строки из источника в цель и вставить их
  • Снова включить все ограничения для таблиц назначения.

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

  • Могу ли я указать его на цель, а затем вставить?
  • Есть ли лучший способ сделать это?
  • Альтернативой является создание операторов INSERT INTO с использованием метаданных для идентификации столбцов идентификаторов, а не включения их в имена столбцов.

Ответы [ 3 ]

3 голосов
/ 23 декабря 2009

То, что вы предлагаете, должно работать. Но вам может быть проще (и вы наверняка увидите лучшую производительность) с классом SqlBulkCopy .

(Это решение, ориентированное на код)

1 голос
/ 23 декабря 2009

Вы можете использовать мастер импорта и экспорта Sql Server (dtswizard.exe). Он создает пакет служб Integration Services, который затем можно сохранить и выполнить в любое время.

1 голос
/ 23 декабря 2009

Краткий ответ: вы можете загрузить DataTable и сохранить его в другой базе данных, используя другой DataAdapter.

Но для подхода без кода вы можете использовать SQL ServerИнструментарий публикации баз данных как указан здесь .

...