SSIS - 将脚本组件输出IsSorted属性设置为true

时间:2014-01-04 00:39:16

标签: sql-server sorting ssis

我有2个excel源数据流,在excel源上我将IsSorted属性设置为true,并且SortKeyPosition在其中一列上设置为1,每个流进入一个同步脚本组件,为某些列分配值列然后两个输出都转到合并连接任务。

合并组件抱怨因为输入没有排序,当我查看脚本组件输出的元数据时,我可以看到为列设置为1的sortKeyPosition设置,所以我认为它可能是IsSorted属性要在脚本任务中重置输出,有没有办法将其设置为true?

我尝试过高级编辑但没有运气。

3 个答案:

答案 0 :(得分:3)

您的数据实际上必须进行物理排序才能使合并正常工作,只需设置is sorted属性实际上不会对数据进行排序,它只是为已经排序的下游组件提供提示。

您可以通过在两个组件之间放置一个排序运算符来解决此问题,这将确保数据实际上已正确排序。有关更多详细信息,请查看以下内容:

Sort Data for the Merge and Merge Join Transformations

答案 1 :(得分:1)

这可能会有所帮助 http://liguoliang.com/2012/ssis-set-issorted-property-for-the-source-of-mergejoin/

两个来源都必须按同一列进行排序。 - 右键单击​​源 - 转到高级编辑器 - 将源IsSorted属性设置为True - 将列的排序位置设置为1,然后设置为2,然后设置为3 ...

答案 2 :(得分:0)

我能够找到问题,将SortKeyPosition设置为1的列作为读/写列添加到脚本组件,当我从脚本组件的输入列中删除它时,合并连接组件将输入识别为已排序!