Я пытаюсь получить данные из таблицы MySQL и вставить в таблицу SQL Server, используя соединения ADO .NET в SQL Server 2008 SSIS. В моей задаче потока данных у меня есть источник ADO .NET, который запрашивает таблицу MySQL (выбирает все счета-фактуры) и пункт назначения ADO .NET, который вставляет данные в мою таблицу SQL Server. Теперь я хотел бы добавить параметр в свой источник данных, чтобы я выбирал только max(invoiceNumber), полученный из моей таблицы SQL Server. Я выполнил аналогичную задачу, используя «Команду OLE DB», но проблема в том, что мне нужно запросить базу данных MySQL. Любые идеи, как я могу этого добиться?
Параметры запроса SSIS для источника ADO .NET
comment
Я бы, если бы я получил правильный ответ
- person Ali_Abadani   schedule 22.12.2009
Ответы (3)
Установите для параметра Режим доступа к данным в ADO.NET Source значение SQL Command
и напишите запрос.
person
Damir Sudarevic
schedule
21.12.2009
Я уже делаю это для своего запроса. Откуда взять параметр?
- person Ali_Abadani; 22.12.2009
Переменная - сначала запросите локальную БД, поместите результат в переменную и передайте переменную второму запросу.
- person Damir Sudarevic; 26.12.2009
Я обнаружил, что единственный способ использовать параметр с источником данных ADO.NET — это обходной путь: перейдите к управлению потоком и выберите поток действий, содержащий ваш источник ADO.NET. В окне свойств вы можете увидеть исходную команду Sql ADO.NET. Перейти к выражению и выбрать свойства: [ВАШЕ ИМЯ ИСТОЧНИКА].[SqlCommand], а затем отредактировать выражение, используя переменные для имитации параметров.
person
il_guru
schedule
08.07.2011
Вам не нужно добавлять параметр:
select *
from invoices
where invoiceNumber = (select max(invoiceNumber) from invoices)
Вышеупомянутое работает в SQL Server. Я предполагаю, что тот же запрос будет работать в MySQL
person
James Wiseman
schedule
22.12.2009
Я думаю, вы могли неправильно меня понять. select max(invoiceNumber) должен быть вызван для моей локальной таблицы SQL Server. Затем я могу использовать этот номер для запроса внешней базы данных MySQL. Таким образом, каждый день пакет будет получать новые счета из базы данных MySQL и отправлять их на SQL Server.
- person Ali_Abadani; 22.12.2009