【问题标题】:SSIS - set script component output IsSorted property to trueSSIS - 将脚本组件输出 IsSorted 属性设置为 true
【发布时间】:2014-01-04 00:39:15
【问题描述】:

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

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

我尝试了高级编辑器,但没有成功。

【问题讨论】:

  • 您的 excel 资源是否实际上排序?
  • 是的,数据已排序,所以我不添加排序组件。

标签: sql-server sorting ssis


【解决方案1】:

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

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

Sort Data for the Merge and Merge Join Transformations

【讨论】:

  • excel数据是排序好的,我只需要让merge组件知道
【解决方案2】:

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

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

【讨论】:

    【解决方案3】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-01-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-11-28
      相关资源
      最近更新 更多