假设我有一个如下所示的文本文件:
date 1/1/2010
a,b,c
a,b,d
...
我想将它导入到一个表中,所以它看起来像这样:
1/1/2010,a,b,c
1/1/2010,a,b,d
...
有什么优雅的方法可以做到这一点?
到目前为止,我最好的想法是使用数据流包,并使用平面文件源读取文件(忽略第一行)并将其加载到表中。完成后,让脚本任务再次打开文件,读出日期,然后将该日期传递给 sql 任务以使用日期更新表。
但肯定有一种不那么复杂的方式吗?
假设我有一个如下所示的文本文件:
date 1/1/2010
a,b,c
a,b,d
...
我想将它导入到一个表中,所以它看起来像这样:
1/1/2010,a,b,c
1/1/2010,a,b,d
...
有什么优雅的方法可以做到这一点?
到目前为止,我最好的想法是使用数据流包,并使用平面文件源读取文件(忽略第一行)并将其加载到表中。完成后,让脚本任务再次打开文件,读出日期,然后将该日期传递给 sql 任务以使用日期更新表。
但肯定有一种不那么复杂的方式吗?
我会将日期提取到包 datetime 变量中。然后,使用数据流来提取您提到的数据。之后,在同一数据流中,我将使用派生列转换将日期变量添加到您的缓冲区,然后将其加载到您的表中。它与您的想法相似,但需要较少的打开和关闭数据库连接,该连接将使用您的 sql 任务创建和处置。
我用过这个组件 --> http://www.sqlis.com/post/Row-Number-Transformation.aspx
该组件创建一个带有行号的新变量。您阅读问题中描述的文件,然后应用该组件。之后,您可以使用条件拆分来获取 id > 1 的所有行。
这避免了两次访问数据库,但涉及安装第三方组件。
Pick you poison.