我在数据流中有一个 OLE DB 命令,它根据查找任务的结果删除记录。我想计算删除的记录数。我在 OLE DB 命令之后设置了一个 RowCount 任务,但我收到的结果是与查找匹配的记录数,而不是与删除语句(OLE DB 命令)中的条件匹配的记录数。
任何援助将不胜感激。
-克雷格
我在数据流中有一个 OLE DB 命令,它根据查找任务的结果删除记录。我想计算删除的记录数。我在 OLE DB 命令之后设置了一个 RowCount 任务,但我收到的结果是与查找匹配的记录数,而不是与删除语句(OLE DB 命令)中的条件匹配的记录数。
任何援助将不胜感激。
-克雷格
创建一个存储过程来处理您的删除。我为一个组合表创建了一个简化版本:
创建过程 deleteTT @id int, @rowcount int OUTPUT as begin delete from dbo.tt where a = @id; 选择@rowcount = @@ROWCOUNT; 结尾
将 OLE DB 命令的 SqlCommand 设置为以下内容:exec deleteTT ?, ? 输出;
在 Column Mappings 选项卡中,将查找中的 id 列映射到 @id 参数,并将 rowsDeleted 映射到 @rowcount OUTPUT 参数。
现在 rowsDeleted 是该行数据流的一部分,您可以随意使用它。
您可能需要尝试让 Command 对象发出已删除内容的计数,然后将聚合连接到它以汇总所有这些值。
我从来没有成功地从 Command 组件中获取输出,所以我会作弊并在前面的查找中计算聚合并将该值添加到流中,或者只是使用脚本组件来触发 delete 语句并捕获@@rowcount
值并将其推送到数据流中。