Зацикливание 10 записей за раз и назначить его переменной - PullRequest
0 голосов
/ 04 февраля 2019

У меня есть таблица из 900 записей.Я хочу получить 10 записей одновременно и назначить его переменной.В следующий раз, когда я выполню для каждой задачи цикла в службах SSIS, она зациклит еще 10 записей и перезапишет переменную.Любая помощь будет принята с благодарностью.

У меня есть таблица, например, например,

EMPID
0001
00045
00067
00556
00078
00345
00002
00004
00005
00006
00007
00008

Я хочу, чтобы я пытался выполнить задачу sql, чтобы получить 900 записей в переменную, подключить задачу Выполнить sql кДля каждого цикла, внутри каждого цикла есть задача потока данных, у источника есть запрос sql, а местом назначения является таблица.

select * from Dbo.JPKGD0__STP
where EMPID in ?

, но при этом каждый empid будет передаваться в цикле 1, поэтому я хотел передать 10empids каждый раз.

Пожалуйста, дайте мне знать, если мне нужно использовать другой подход / или другие задачи для достижения этой цели.

1 Ответ

0 голосов
/ 06 февраля 2019

Шаг (1) - создание переменных

Необходимо создать две переменные типа int:

  • @[User::RowCount] >> типа int
  • @[User::Counter] >> введите int
  • @[User::strQuery] >> введите строку

Назначьте следующее выражение для @[User::strQuery]:

"SELECT  EMPID
FROM     Dbo.JPKGD0__STP
ORDER BY EMPIDASC 
OFFSET  " + (DT_WSTR,50)@[User::Counter]  + " ROWS 
FETCH NEXT 10 ROWS ONLY "

Шаг (2) - получить количество строк

Сначала добавьте Execute SQL Task с помощью следующей команды:

SELECT Count(*) FROM Dbo.JPKGD0__STP;

и сохраните результат в @[User::RowCount] переменную ( проверьте эту ссылку для получения дополнительной информации).

Шаг (3) - Для контейнера цикла

Теперь добавьте For Loop Container со следующими выражениями:

  • InitExpression: @[User::Counter] = 0
  • EvalExpression: @[User::Counter] < @[User::RowCount]
  • AssignExpression: @[User::Counter] = @[User::Counter] + 10

Внутри For loop container добавьте Data flow task, с источником OLE DB и адресатом.В источнике OLE DB выберите Access Mode как SQL Command from variable и выберите @[User::strQuery] в качестве источника.


Ссылки

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