即使查找中没有行,也会执行 Oledb 命令

Oledb command executing even if no rows from lookup

我有一个 SSIS 包,如果没有匹配项需要将这些记录作为标志 Y 插入,但如果以前存在,我必须将存在的记录更新为 N.The 检查是基于 code.Lookup设置如下

我已经构建了 SSIS 包如下:

OLE DB 命令用于根据来自查找不匹配的代码将标志更新为 N,其中它是 Y(对于现有记录)。 OLE DB 目标用于插入来自查找不匹配的新记录,标志为 Y。我想正确编写 OLE DB 命令,以便它只更新那些已经是 Y 的记录标志为 N,它们来自查找不匹配输出。但是我面临的如何正确形成查询 issue.I 写了这个

UPDATE [LKP].[l_channel_hierarchy]
SET record_end_date = CONVERT(VARCHAR,DATEADD(SECOND,-1,GETDATE()),120) 
,current_record_flag   = 'N'            
WHERE current_record_flag = 'Y' AND [CHANNEL_CODE] = ?

我构建的上述查询是为了实现相同的目的,它将标志更新为 N,将查找不匹配的行作为参数。

如果您尝试 "if no match need to insert those records as flag Y but if present previously I have to update those records present to flag to N",那么 查找无匹配输出 将只有丢失的记录,并且观察到的行为(不匹配的记录被送入 OLE DB 命令) 有效。
要将现有记录的 current_record_flag 设置为 N,请从名为 查找匹配输出 的查找转换中获取另一个数据流,然后将 OLE DB 命令 那里