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中还原