使用SSIS包将过程结果存储到文本文件

时间:2013-08-21 06:08:47

标签: sql-server sql-server-2008 tsql ssis

这里我是开发SSIS包的新手

我需要您的支持才能提出解决方案。

我有10个不同的存储过程集,我必须将其导出到文本文件中,所有10个过程都将返回相同的列集(只有调用参数不同)。

我没有得到解决方案怎么做?

您能否帮我理解如何将数据从存储过程输出导出到制表符分隔的文本文件?

请告诉我如何构建ssis包?

由于

1 个答案:

答案 0 :(得分:1)

如果不在每一步都放入图片,这很难做到。我似乎无法放入图片,所以我会尝试尽可能详细地描述。

您必须首先建立与数据库的连接,以便从中运行存储过程。这意味着为“新建OLE DB连接”创建连接管理器。您需要通过vaild登录数据库信息来创建此连接。

在控制区域中,我将设置“执行SQL任务”。我将结果集设置为完整结果集,并将连接设置为您在上一步中命名的连接。要从SQL任务调用存储过程,请使用类似“exec?= dbo.usp_check_load_table_all @JobCode = ?, @ TransId =?,@ Status =?,@ TurnStatusOff =?”的内容。首先 ?是存储过程的返回码。其他是运行存储过程的参数。现在你运行了10个不同的存储过程,我只知道如何运行一个,但你可以创建10个包,每个包运行一个,并在文件完成时连接文件。在参数映射中,您可以设置要运行的变量的值。确保为返回代码创建一个USER :: ReturnValue类型。结果集需要一个条目USER ::结果类型对象。

现在,您为ADO枚举器添加了一个foreach循环,将USER :: Results作为变量放入。这允许您一次读取一行。您必须为要进入的变量映射创建用户变量。

然后,我会执行数据流任务并放置派生列任务,并从您为foreach循环创建的USER :: fieids中设置要写入文件的每个字段。

我会在连接管理器中创建一个平面文件连接作为分隔文件,以制表符分隔。您将需要一个看起来像您想要的输出的文件,因为您需要映射文件中的每个字段。

将平面文件目标添加到deriried column任务下,并将其映射到刚刚创建的平面文件。现在将每个字段映射到输出。

我希望这很有用,因为我曾经是新的SSIS。