我正在开发一个 SSIS 包,添加更新功能(使用临时表更新行)。为此,我使用查找和条件拆分来比较所有列。
出于某种原因,一些数据会抛出误报并将行标记为已更改,而实际上它们没有。我已将其隔离为单个字符串列(邮政编码)。
该列直接来自查找。源数据列是varchar(9)
,目标(即第二个值的源)是char(9)
。在 SSIS 中,两列都通过DT_STR,9,1252
如果我从一个空表开始,并运行包两次,第二次大约 20% 的行出现变化,即使它们没有。以下 sql 将现有行连接到临时表中的“更新”行并比较它们的 zip:
SELECT a.key_DestinationZip, b.key_DestinationZip,
CASE WHEN a.key_DestinationZip = b.key_DestinationZip then 1 else 0 end
FROM [dbo].[sta_Sales] as a
join [dbo].[fact_Sales] as b
on a.key_FullSalesNumber = b.key_FullSalesNumber
结果类似于
78735 78735 1
38138 38138 1