2011-01-24 1 views
0

Я импортирую данные с удаленного сервера MySQL. Я подключаюсь к базе данных MySQL через SSH-соединение, а затем извлекаю данные в MS SQL Server. Есть несколько проверок типов, которые необходимо выполнить, особенно MySQL DateTime, в MS SQL DateTime. Первоначально я думал об использовании MySqlDataReader для чтения данных в List<T> для обеспечения правильных типов, а затем нажатия данных в DataSet, а затем в MS SQL Server.MySQL для MS SQL Server ... нужен совет по наилучшему подходу

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

Мысли?

ответ

2

Я лично не использовал бы набор данных в процессе, но переместил бы его в .NET-тип, тогда использование параметризованного оператора SQL будет работать нормально.

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

+0

Спасибо. В настоящее время я делаю объемную вставку прямо из MySqlDataReader, но тогда я не получаю безопасность типа и не имею проблем с полями MySql DateTime и должен вставлять их как VARCHAR. Сначала я попробовал параметризованный оператор sql, но обнаружил, что производительность плохая, поэтому я рассматривал возможность использования .NET-типа для DataSet, а затем для вставки вставки. – dolphy

1

Вот Microsoft Guideline для перехода с MySQL на SQL Server 2000:

http://technet.microsoft.com/en-us/library/cc966396.aspx

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

Прочитав эту статью, вы можете импортировать MySQL без написания строки C#

+0

Это было бы предпочтительным способом, используя пакет SSIS, но если я не ошибаюсь, SSIS не поддерживает соединения SSH из коробки. – dolphy

0

Вы знаете, если это процесс, который вы должны выполнить, но вы не ограничены писать свой собственный код, вы могли бы хочу посмотреть на Тэленд. Это инструмент с открытым исходным кодом для ETL (по существу, преобразования данных между источниками данных).

Это с открытым исходным кодом и имеет приятный графический интерфейс для проектирования трансформации - откуда происходят и куда они идут, плюс то, что происходит посередине.

http://www.talend.com/index.php

Просто мысли, но если вы просто пытаетесь достичь цели, а не писать инструмент, он может быть более быстрым и гибким в долгосрочной перспективе для вас.

0

Самый простой способ сделать это, чтобы преобразовать его в отметку времени.

Timestamp SetupStart_ts = rs.getTimestamp("SetupStart"); 
String SetupStart = SetupStart_ts.toString() 

Нажмите его MSSQL Server откладывая, и он будет автоматически сохранять в DateTime, но varify it.thank вы.

Смежные вопросы