循环5一次记录并将其分配给变量

Imr*_*ran 4 sql-server ssis

我有一张811记录表.我希望一次获得五条记录并将其分配给变量.下次当我foreachSSIS中运行循环任务时,它将循环另外五个记录并覆盖变量.我尝试过使用游标但找不到解决方案.任何帮助将受到高度赞赏.我有这样的表格,例如

ServerId ServerName
1         Abc11
2         Cde22
3         Fgh33
4         Ijk44
5         Lmn55
6         Opq66
7         Rst77
.           .
.           .
.           .
Run Code Online (Sandbox Code Playgroud)

我想查询应该采用如下的前五个名称并将其分配给变量

ServerId ServerName
1         Abc11
2         Cde22
3         Fgh33
4         Ijk44
5         Lmn55
Run Code Online (Sandbox Code Playgroud)

然后下一个循环取另外五个名称并覆盖变量值,依此类推,直到消耗掉最后一个记录.

pra*_*een 6

考虑到ltn的答案,这是如何实现限制SSIS中的行.

设计看起来像

在此输入图像描述

第1步:创建变量

  Name       DataType 
  Count        int
  Initial      int
  Final        int
Run Code Online (Sandbox Code Playgroud)

步骤2:对于第一个执行SQL任务,编写sql来存储计数

  Select count(*) from YourTable
Run Code Online (Sandbox Code Playgroud)

General此任务的选项卡中,选择ResultSet为Single Row.

在ResultSet选项卡中,将结果映射到变量

  ResultName       VariableName
    0               User::Count
Run Code Online (Sandbox Code Playgroud)

步骤3:在For循环容器中输入表达式,如下所示

在此输入图像描述

步骤4:在For循环内部拖动一个执行SQL任务并编写表达式 在此输入图像描述

在参数映射中映射initial变量

  VariableName    Direction   DataType   ParameterName   ParameterSize
   User::Initial   Input       NUMERIC     0                -1
Run Code Online (Sandbox Code Playgroud)

结果集选项卡

  Result Name     Variable Name
   0                 User::Final
Run Code Online (Sandbox Code Playgroud)

在DFT内部,你可以编写sqL来获取特定的行

在此输入图像描述

单击Parameters并选择变量INITIALFINAL