我必须阅读一个文本文件,其中包含标题行和SSIS的一些详细信息。我有两个表(一个用于标题,一个用于详细信息),我需要将数据输入。我需要插入标题并获取该行的标识,因此我可以将该值插入到详细信息行中。我怎么能做到这一点?
目前,我正在阅读标题行并使用OLE DB目标任务将其放入数据库。
答案 0 :(得分:0)
您有三种选择。
首先,将所有数据写入目的地。然后再次从文件中读取所有数据,使用Merge Join组件将行与您在数据库中写入的行匹配,获取标识列,插入详细信息表。缺点是你必须两次读取同一个文件。
其次,读取所有数据并写入标头和详细信息表,但是您的目标标头表应该有一个额外的列(标识)。然后发出一个更新语句,将FK从详细信息表更新为标题表(标识)。
第三,如果您可以逐行写入数据库,可以在源数据和循环中进行循环:写入标题数据,执行sql任务以读取最后一个标识,派生列更新标识列在管道中,写入详细数据。这个解决方案非常慢。 (这样,请注意正确获取标识列,或使用sp插入数据,以便sp ccan为您返回标识以消除上述执行任务)