1

我通过 SSIS 导入平面文件,然后将它们导出到 SQL 表中。我需要在中间某处添加一个包含 GUID 的附加列,以便它也可以导出到表中。

我已经确保 SQL 表中有一个附加列准备好用于传递 GUID,但我不确定如何在包中创建 GUID,有什么想法吗?

谢谢

4

3 回答 3

4

您可以通过脚本组件转换来做到这一点。

在您的数据流任务中,在源和目标之间添加脚本组件。在“输入和输出”下添加一个输出列,根据需要命名,并在数据类型属性中为其指定 DataTypeunique identifier [DT_GUID]

使用这个脚本(确保 ScriptLanguage 是 VB.net):

Imports System
Imports System.Data
Imports System.Math
Imports Microsoft.SqlServer.Dts.Pipeline.Wrapper
Imports Microsoft.SqlServer.Dts.Runtime.Wrapper

<microsoft.sqlserver.dts.pipeline.ssisscriptcomponententrypointattribute> _
<clscompliant(false)> _
Public Class ScriptMain
    Inherits UserComponent

    Public Overrides Sub Input0_ProcessInputRow(ByVal Row As Input0Buffer)
        ' Create a Globally Unique Identifier with SSIS
        Row.Guid = System.Guid.NewGuid()
    End Sub
End Class
于 2013-07-03T16:30:16.827 回答
3

下面的链接应该可以帮助你。

  1. 添加派生变换
  2. 添加新列
  3. 获取 dt_guid

这里有更多详细信息的链接 http://microsoft-ssis.blogspot.com/2011/02/create-guid-column-in-ssis.html

祝你好运

于 2013-07-03T21:14:28.707 回答
0

您可以使用脚本组件自定义数据流组件来做到这一点。

使用NewGuid为每一行创建一个新的 guid。

于 2013-07-03T16:28:46.483 回答