我正在尝试在SSIS中使用Foreach循环容器来遍历一小组行,并将列'id'设置为变量。
我有以下变量:
以下是我的循环在传统语法中的外观:
for (int i = @startNumber; i > @maxNumber ; i++)
这是我想要运行以更新行的TSQL代码:
UPDATE myTable SET id = i
非常感谢任何帮助。
答案 0 :(得分:4)
我创建了一个简单的控制流程来向您展示我认为你在追求什么
我从一个执行SQL任务开始生成一个基本表。你可能在这里有逻辑来确定起始编号和/或终值
if not exists
(
SELECT * FROM sys.tables AS T WHERE T.name = 'FLC'
)
BEGIN
CREATE TABLE dbo.FLC
(
currentID int
);
END
3个变量,范围为包级别
我配置For循环(不是foreach,因为你的问题已被标记),就像经典for循环一样。这里我为我的SSIS变量@currentNumber
分配一个值
在我的执行SQL任务中(在for循环中)我使用@currentNumber作为我的任务的参数。
INSERT INTO
dbo.FLC
(
currentID
)
-- OLE DB & ODBC connections use ? for ordinal parameter
-- ADO.NET uses named parameters like @foo
SELECT ? AS currentID;