【发布时间】:2018-02-07 14:43:20
【问题描述】:
在 SSIS 中运行脚本组件后,我目前能够从平面文件中获取这种类型的输出:
我的目标是用相同的序列号填写该列的其余部分,如下所示:
我尝试通过将其设置为变量并使用派生列来做到这一点,但是直到数据流之后才设置变量。此外,该脚本仅逐行读取,因此我看不到执行此简单任务的明显方法。
有没有办法在脚本中创建一个列并给它一个序列号的默认值?或者有没有办法使用 SQL 命令来更新列不为 Null 的 Null 值?
【问题讨论】:
-
当然。您使用更新语句。更新 YourTable 设置 SerialNumber = SerialNumber 为 NULL 的任何位置。但是从您发布的内容来看,它们看起来不像 NULL,它们看起来像空字符串。
-
@SeanLange 使用 SSIS 和 ACE/JET 驱动程序时,空单元将作为
NULL导入,而不是''。对于 OP,就个人而言,如果您可以在导入后定义数据的顺序,我会在您的临时表中执行此操作。这比执行脚本任务要容易得多。 更容易。 -
这是在我将其插入表格之前。这只是我的脚本能够从文本文件生成的输出。它们也是空白的,因为我在 Excel 中做了示例。
-
看不到你的图片,但也许可以换一张桌子。导入表 1,使用序列号进行更新,然后使用此临时表作为源继续执行后续步骤。
-
我可以用触发器做临时表。我唯一的问题是我有多个这样的文件,唯一标识符是序列号。所以我不能加入一个插入的伪表来确保我只更新我刚刚导入的值。
标签: sql sql-server ssis script-task