在SSIS中生成唯一标识符GUID

5

我在SSIS中使用GUID作为批处理标识符。我的最终输出是到SQL Server。

我知道如何使用Select NewId() MyUniqueIdentifier在Sql Server中生成一个GUID - 我可以使用查询和Execute SQL任务生成一个GUID。

但如果没有可用的SQL Server,我想在SSIS包内完成此操作,是否可以生成GUID?


你想将它加载到新表中吗?如果是,那么该表中是否有数据? - koushik veldanda
1
为什么不能简单地使用Execute SQL任务将NewId()填充到SSIS变量中? - Tab Alleman
1
@Tab,这很简单,这就是我实现的解决方案。然而,出于自己的知识考虑,我想知道在SSIS中如何实现这一点。 - Raj More
对我来说,“执行SQL任务”就是“在SSIS中”,所以你能否更准确地说明你的意思? - Tab Alleman
1
抱歉!我的评论适用于我之前生成的GUID。一个脚本组件可以解决问题。请参考http://microsoft-ssis.blogspot.co.uk/2011/02/create-guid-column-in-ssis.html。 - MiguelH
显示剩余4条评论
2个回答

4

我有过类似的问题。为了解决它,我创建了一个 SSIS "Composant Script",其中创建了一个 "guid" 输出。该脚本使用的VS C# 代码如下:

Row.guid = Guid.NewGuid();

最后,我将输出路由为派生列,并将其发送到我的“OLE DB目标”数据库中,以便为每个新条目生成一个全局唯一标识符(guid)。

1
更多信息请参见另一个答案:https://stackoverflow.com/a/17453385/717732 - quetzalcoatl

2

只需在“执行SQL任务”中操作。

  • 打开任务

  • 在“常规”下的“SQL语句”,在“SQLStatement”字段中输入您的查询Select NewID() MyID

  • 在“常规”下的“结果集”,选择“单行”

  • 在“参数映射”下,输入您的User::myID作为变量名称,“输入”作为方向,0作为参数名称,-1作为参数大小

  • 在“结果集”下,为您的结果名称输入“MyID”,并在“变量名称”中输入变量

- 点击确定

完成。请注意,“MyID”是您可以选择的值。编辑: “User:: myID”对应于您创建的SSIS变量。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接