1

我在数据流中有一个 OLE DB 命令,它根据查找任务的结果删除记录。我想计算删除的记录数。我在 OLE DB 命令之后设置了一个 RowCount 任务,但我收到的结果是与查找匹配的记录数,而不是与删除语句(OLE DB 命令)中的条件匹配的记录数。

任何援助将不胜感激。

-克雷格

4

2 回答 2

1
  1. 为数据流中的行数创建一个空占位符列。您可以将其添加为派生列或源查询。我们称之为rowsDeleted
  2. 创建一个存储过程来处理您的删除。我为一个组合表创建了一个简化版本:

    创建过程 deleteTT @id int, @rowcount int OUTPUT as begin delete from dbo.tt where a = @id; 选择@rowcount = @@ROWCOUNT; 结尾

  3. 将 OLE DB 命令的 SqlCommand 设置为以下内容:exec deleteTT ?, ? 输出

  4. 在 Column Mappings 选项卡中,将查找中的 id 列映射到 @id 参数,并将 rowsDeleted 映射到 @rowcount OUTPUT 参数。

  5. 现在 rowsDeleted 是该行数据流的一部分,您可以随意使用它。

于 2013-09-25T15:30:10.723 回答
0

您可能需要尝试让 Command 对象发出已删除内容的计数,然后将聚合连接到它以汇总所有这些值。

我从来没有成功地从 Command 组件中获取输出,所以我会作弊并在前面的查找中计算聚合并将该值添加到流中,或者只是使用脚本组件来触发 delete 语句并捕获@@rowcount值并将其推送到数据流中。

于 2013-09-25T14:23:14.050 回答