Как перенести данные из Microsoft Access в SQL Server 2008? - PullRequest
3 голосов
/ 29 сентября 2010

В моем текущем проекте мне нужно переносить данные КАЖДЫЙ ДЕНЬ из MS Access в стандартную версию Sql Server 2008.конечно, я могу использовать средство миграции SQL для преобразования базы данных Access в базу данных Sql Server, но проблема в том, что мне приходится делать это снова и снова каждый день, чтобы постоянно обновлять базу данных моего сервера SQL.

Так есть ли способ, я могу написать C # программу, которая передает данные из файла MS ACCESS в SQL SERVER?

Любая помощь будет высоко ценится.

Ответы [ 4 ]

4 голосов
/ 29 сентября 2010

Как предложил Серкан в своем комментарии, я бы хотел использовать SSIS (службы интеграции SQL Server) для этой задачи, особенно если вы уже используете SQL Server, а SSIS создан именно для этой задачи.

SSIS очень гибок (как и большинство пакетов ETL), и вы можете добавить собственную логику для преобразования данных (если есть)

Кроме того, если вы создаете задание на сервере SQL, вы можете запланировать эту задачу, и это задание выполнит пакет служб SSIS, который подключается к базе данных MS Access, и автоматически использует его в качестве источника данных.

Более того, у вас есть возможность вызывать пакет служб SSIS непосредственно из кода C # (если по какой-то причине у вас есть требование не использовать запланированные задания, но необходимо предоставить какой-то интерфейс для пользователей, чтобы запустить задачу), используя DTExec.exe или используя классы, выставленные через Microsoft.SQLServer.ManagedDTS.dll.

См. Эту ссылку , чтобы узнать, как вызвать пакет служб SSIS непосредственно из кода C #

1 голос
/ 30 сентября 2010

Вы также можете запускать запросы обновления / удаления / добавления внутри C #.С различными предложениями IN, указывающими на рассматриваемые базы данных.Как именно вы сделали бы это в C #, я не знаю, но это было бы легко сделать в Access.

[SELECT | INSERT] INTO destination IN
    {path | ["path" "type"] | ["" [type; DATABASE = path]]}

Чтобы определить исходную таблицу:

FROM tableexpression IN 
    {path | ["path" "type"] | ["" [type; DATABASE = path]]}

из Access97 помощь.

1 голос
/ 29 сентября 2010

Почему бы просто не перенести данные на SQL Server навсегда и использовать приложение Access в качестве внешнего интерфейса для базы данных SQL Server вместо базы данных Jet / ACE?

1 голос
/ 29 сентября 2010

Я бы предложил ETL (см. Talend Open Studio , например).Вы проектируете задание передачи (с соответствующим преобразованием, если необходимо), а затем используете свой планировщик задач ОС для запуска задания каждый день.

Примечание: Talend Open Studio генерирует код Java или Perl.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...