SSI使用存储过程将DB数据访问到TSQL中
我想使用一个数据流任务,它有两个源,一个来自Access DB,另一个来自SQL Server DB。然后,我想操作数据,并最终在作为第二个源的同一台SQL Server上调用一个存储过程 因此,我不能使用SSI使用存储过程将DB数据访问到TSQL中,tsql,ssis,Tsql,Ssis,我想使用一个数据流任务,它有两个源,一个来自Access DB,另一个来自SQL Server DB。然后,我想操作数据,并最终在作为第二个源的同一台SQL Server上调用一个存储过程 因此,我不能使用executesql任务,因为我希望操作数据并在最后调用存储过程 我将使用什么工具箱组件,存储过程将调用什么格式 我尝试使用一个名为这样的存储过程来实现OLEDB目标 Exec sppUpdateAATable1 ?,? SSIS使用管道的概念来组织数据流任务。数据从源流向目标,而对这些数据
executesql任务
,因为我希望操作数据并在最后调用存储过程
我将使用什么工具箱组件,存储过程将调用什么格式
我尝试使用一个名为这样的存储过程来实现OLEDB目标
Exec sppUpdateAATable1 ?,?
SSIS使用管道的概念来组织数据流任务。数据从源流向目标,而对这些数据的处理则在这两者之间进行。因为您希望将存储过程中的处理结果用作参数,所以不能在管道概念下进行。SP并不是数据的真正目的地,因为SP也会对其进行处理 您可以填充内存中的
记录集
(目标),并使用ForEach循环容器为每一行记录集执行SP
更新
您的软件包应该如下所示:
数据流任务:
OLEDB与Access的连接
OLEDB与SQL Server的连接
要组合2个数据流,请在任务中使用UNO
记录集目的地,在属性中,您可以将类型为Object(MyRecordsetVar)的变量命名为。它将保存记录集数据
ForEach循环容器。在properties select type of loop container-ADO Recorset中,在循环属性中指定MyRecordsetVar变量。
分配两个以上(或根据需要)变量以保存记录集每列的数据。来自记录集每一行的数据将传递给这些变量。一次一排
在循环内放置执行SQL任务。在任务的输入“菜单”中,指定您的输入变量,这些变量包含来自记录集列的数据。我想你知道怎么做
将查询作为执行sp\u MyProc?,?
放入任务中
应该是这样。您可以省去记录集目的地和foreach循环路由的麻烦,而是在数据流中使用。它将为流经它的每一行触发存储的proc。是在填充表的数据流任务中执行所有数据操作的唯一方法。然后,第二步是在for each容器中获取该数据,并调用一个执行SQL任务,该任务调用我的存储过程。我想使用该存储过程,因为它更新了多个表,并用于应用程序中的其他函数。感谢您抽出时间回答我的问题。我可以创建一个记录集,然后让我的下一个任务运行一个存储过程,但我不知道如何在存储过程中操作对象。你有一个例子或链接吗?我所看到的一切都是关于将该记录集与一个新表一起使用,而不是一个存储过程。来自RS列的数据将被传递给变量-on,每个列一次一行。然后将这些变量提供给SQL任务。