gpt4 book ai didi

sql - SSIS - 填充 OLE DB 目标表中未映射的列

转载 作者:行者123 更新时间:2023-12-02 23:05:16 26 4
gpt4 key购买 nike

如下图所示,我在 SQL Server 中有一个表,我通过平面文件源填充该表。我想根据下面列出的逻辑更新目标表中的两列:

  • SessionID - 第一次 CSV 导入的所有行的值为 1;第二次导入的值为 2,依此类推。
  • TimeCreated - CSV 导入发生的日期时间值。

我不需要关于如何编写 TSQL 代码来完成此任务的帮助。相反,我希望有人建议一种方法来将其实现为 SSIS 中的数据流任务。

enter image description here

提前感谢您的想法。

编辑2012年11月29日

由于到目前为止所有答案都建议在 SQL Server 端处理这个问题,所以我想向您展示我最初尝试做的事情(见下图),但它不起作用。 SSIS 将数据插入目标表后,SQL Server 中未触发触发器。

如果你们中有人能解释为什么触发器没有触发,那就太好了。

enter image description here

最佳答案

如果您能够修改目标表,则可以使用 SessionID 和 TimeCreated 的默认值来完成所有工作。 SessionID 将是一个自动递增整数,而 TimeCreated 的默认值将是 getdate() 或 gettime(),具体取决于数据类型。

现在,如果您确实需要在工作流程中创建值,则可以为每个值使用变量。

SessionID 是一个由执行 SQL 任务设置的包变量。只需引用结果集中的变量,然后让 SQL 确定要使用的下一个数字。不过,这存在潜在的并发问题。

通过基于系统变量 StartTime 在数据流中创建派生列,可以轻松完成 TimeCreated。

关于sql - SSIS - 填充 OLE DB 目标表中未映射的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13616115/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com