SQL Server 2005 SSIS - 如何从文件的第一行获取特殊信息

Posted

技术标签:

【中文标题】SQL Server 2005 SSIS - 如何从文件的第一行获取特殊信息【英文标题】:SQL Server 2005 SSIS - How to get special information from the first line of a file 【发布时间】:2010-01-22 19:36:52 【问题描述】:

假设我有一个如下所示的文本文件:

date 1/1/2010
a,b,c
a,b,d
...

我想将它导入到一个表中,所以它看起来像这样:

1/1/2010,a,b,c
1/1/2010,a,b,d
...

有什么优雅的方法可以做到这一点?

到目前为止,我最好的想法是使用数据流包,并使用平面文件源读取文件(忽略第一行)并将其加载到表中。 完成后,让脚本任务再次打开文件,读出日期,然后将该日期传递给 sql 任务以使用日期更新表。

但肯定有一种不那么复杂的方法吗?

【问题讨论】:

【参考方案1】:

我会将日期提取到包日期时间变量中。然后,使用数据流来提取您提到的数据。之后,在同一数据流中,我将使用派生列转换将日期变量添加到您的缓冲区,然后将其加载到您的表中。它与您的想法相似,但需要更少的打开和关闭数据库连接,该连接将使用您的 sql 任务创建和处置。

【讨论】:

【参考方案2】:

我用过这个组件 --> http://www.sqlis.com/post/Row-Number-Transformation.aspx

组件创建一个带有行号的新变量。您阅读问题中描述的文件,然后应用该组件。之后,您可以使用条件拆分来获取 id > 1 的所有行。

这避免了两次访问数据库,但涉及安装第三方组件。

选择你的毒药。

【讨论】:

以上是关于SQL Server 2005 SSIS - 如何从文件的第一行获取特殊信息的主要内容,如果未能解决你的问题,请参考以下文章

使用SSIS从SQL Server 2005中的平面文件导入时如何保留NULL值

每晚数据库还原 - SSIS 包 - SQL Server 2005

如何使用 SSIS 将多个 Access 数据库导入 SQL Server

sql server2008备份出来的数据库如何在在sql server 2005或2000中还原

从 SQL Server Management Studio 2008 运行 SSIS 包

Sql server 问题处理