【问题标题】:How to insert the same guid in SSIS import如何在 SSIS 导入中插入相同的 guid
【发布时间】:2015-04-16 21:49:41
【问题描述】:

我正在使用 ssis 包将数据从 csv 平面文件插入到 sql 表中。我在目标表中添加了一个名为 GUID 的新列。每次包运行时,我都需要为所有行插入相同的 guid。问题是它会为每一行生成新的 guid。

【问题讨论】:

  • 目标表的定义是什么?最重要的是 GUID 的列名和类型,包括列的默认定义。
  • 我添加了一个数据类型为 uniqueidentifier 的列名 GUID。如果将默认值设置为 newid(),每行将获得不同的 guid。我试图在包运行时为所有行设置相同的 guid。当包在不同时间运行时,它应该为所有行生成一个新的 guid。有可能吗?
  • 我会在 SSIS 包中生成一次 GUID 并附加到每一行。然后你每次都会插入相同的值。
  • 有可能,是的。您需要在包中执行一个额外的步骤来生成 RunID(执行 SQL 并将结果放入变量中),然后,当您插入数据时(无论您如何操作),将 RunID 变量作为选择作为 GUID 列的值的参数。

标签: sql sql-server ssis


【解决方案1】:

您需要在包中执行一个额外的步骤来生成 RunID(执行 SQL 并将结果放入变量中),然后,当您插入数据时(无论您如何操作),将 RunID 变量传递到查询作为被选作 GUID 列的值的参数。

【讨论】:

  • 如何在 SSIS 中生成它?我尝试使用派生列,但不确定如何为所有行生成相同的 guid
  • 我有同样的问题。我正在加载一个数据仓库,其中自然键是 GUID,当找不到记录时,我需要将其默认为通用 (-1) GUID。我一辈子都找不到办法做到这一点。我唯一的选择是将其插入到列是 varchar 的临时表中,然后在使用 TSQL 插入表之前进行转换。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-03-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多