从SSDT执行查询

时间:2017-11-17 17:27:03

标签: sql-server ssis etl

我正在使用Visual Studio 2015,SSIS在Execute Sql任务中运行一组sql任务,然后通过在SSIS中执行包来在SSMS中的表之间进行数据传输。当我们在SSMS上运行一系列sql语句时,我们会得到类似于每个sql成功活动的行的结果。但是,现在我想使用SSIS自动化流程以减少周转时间。我想获取每个sql查询的行,如select,insert,delete,这些都在执行sql任务中。如何在SSIS中完成?我对SSMS中的存储过程没有dbo_owner权限。我认为SSIS会很快。但是,对我来说,记录有效的行以验证数据非常重要,因为它是财务数据。我在每个sql任务中有近10个sql语句,如select和delete。但输出只有一个表                                                                                例如,我的s​​ql任务如下所示

user.getHistory()

如果我在SSMS中执行此操作,我会为每个select语句生成行,并且还会创建表。如果我在SSIS中执行相同的直通包,那么如何为每个包获取消息?

2 个答案:

答案 0 :(得分:0)

我假设您的数据位于SQL Server上。使用选择,您可以使用数据流任务和行计数而不是Excecute Sql。

对于插入和更新,有几种方法可以获得受影响的行数,例如:https://stackoverflow.com/a/1834264/5605866

或者像这样:http://microsoft-ssis.blogspot.fi/2011/03/rowcount-for-execute-sql-statement.html

基本上是相同的,但语法略有不同。

答案 1 :(得分:0)

您可以在数据源之后使用Row Count transaformation并将其保存为变量。可以参考此get the number of rows returned from the Source that SHOULD be processed

希望得到这个帮助。