2

我在 Foreach 循环容器之前放置了一个执行 SQL 任务,以便对于完整结果集返回的每一行,脚本任务将其插入 Excel 行。

但是,在一个特定的列上,我想在遍历每一行之前按 ASC 顺序对完整结果集进行排序,以便我可以按特定顺序获得完整结果集。

我尝试在执行 SQL 任务中的 SQL 脚本中使用 Order By Clause,但它没有按预期排序。

有没有一种方法可以在传递到另一个进程(即脚本任务)之前按单列对结果集对象中的查询结果进行排序?

4

1 回答 1

1

您似乎已经了解到,您不能在执行 SQL 任务中使用 ORDER BY。相反,在从 Execute SQL 任务加载数据后,使用 Sort 任务对数据进行排序。

使用排序转换编辑器,除了确定“传递”列或从数据流中删除它们之外,您还可以选择对哪些列进行排序以及如何查看它们。 在此处输入图像描述

此图使用的是 OLE DB Source,但是如果使用 Execute SQL 任务,Sort 任务的实际效果是一样的

在此处输入图像描述

这确实提出了一个问题:为什么要使用执行 SQL 任务?OLE DB 源使用起来会更容易、更灵活。尽可能考虑重写您的 SSIS 包以使用 OLE DB 数据源。

于 2019-09-30T15:54:36.620 回答