我正在试图弄清楚如何将现有的DTS文件转换为SQL Server服务器上托管的DTSX。
在我的第一次尝试(第一次DTS)中,我已经卡住了。
我不想看看如何使用DTS完成任务并且想要专注于新的DTSX技术。
必须做些什么。
步骤导入文件是我被困的地方。我有一个固定的列大小的平tekst文件,其中housenumber和扩展名在一列。数据库有两列。
我首先尝试了一个派生列,但是可以找到分割(第一个)数字部分的检查。
在搜索正则表达式的使用时,我读到了我读到的“脚本组件”与SQL 2005不兼容。
还有其他可能吗?
这让我想到第二个问题:是否可以将SQL Server数据工具(SSDT)与SQL Server 2005一起使用。
答案 0 :(得分:0)
你有一份工作在你前面。您将需要使用Derived Column转换,因此请查找它们。将Data Viewers添加到数据流中会很有帮助,这样您就可以看到流中的数据以及SSIS认为的数据。
在您的情况下,您将不得不操纵字符串。有两种字符串数据类型,DT_STR和DT_WSTR(例如,VARCHAR和NVARCHAR)。 SSIS非常关注数据类型,您可能必须使用强制转换操作将一种类型转换为另一种类型。例如,(DT_WSTR,50)Blah将列Blah中的50个字符转换为DT_WSTR。 DT_STR类型还需要知道代码页。例如像1252这样的东西。
您可能需要SSIS版本Immediate If,它检查条件是否为真,并返回一个结果或另一个结果:Blah == 100?1:0结果为1对于列Blah等于100的记录,对于所有其他记录为0。你可以嵌套这些立即If语句,其中一个在下一个语句中,在下一个语句中,并且等等。
您需要在Derived Column小部件中创建至少两个新列,一个用于数字,另一个用于后面的内容。所以这是一个非常痛苦的方法来做你想要的。使用字符串函数检查第一个字符是否为数字,然后返回或不返回。为第二个角色做同样的事情。
当然,我确信有更好的方法可以做到这一点。您的工具箱由Derived Column小部件中的函数组成,因此您必须使用它。 (或者,在这种情况下,您可能会在SQL UPDATE语句中做得更好,您将在上面的控制流程中执行后续任务,而不是在下面的数据流中。)
公平警告:SQL Server 2005版本的SSIS存在许多,许多,许多错误和挫折,这些错误和挫折在SQL Server的更高版本中得到修复或改进。即使你只是去SQL Server 2008,你也会为自己省去许多麻烦。