我有一个更新查询,返回错误的结果。
UPDATE StagingWarehouse.dbo.BusinessLeads
SET CompanyFK = c.CustomerPK
FROM StagingWarehouse.dbo.BusinessLeads s
INNER JOIN DataWarehouse.dim.Customer c
ON c.CustomerBK = s.CompanyBK
WHERE s.businessleadbk = 5796722
在运行此语句后从businessleadbk = 5796722
选择StagingWarehouse.dbo.BusinessLeads
时,CompanyFK
设置为11024703.问题在于CustomerPK
DataWarehouse.dim.Customer
上的SELECT c.*
FROM StagingWarehouse.dbo.BusinessLeads s
INNER JOIN DataWarehouse.dim.Customer c
ON c.CustomerBK = s.CompanyBK
WHERE s.businessleadbk = 5796722
11024703不存在并且运行以下查询不会返回任何结果,所以我不知道从哪里得到该数字。
{{1}}
答案 0 :(得分:1)
UPDATE
计划如下所示
计划中的所有操作员都排放了1行。
SELECT
计划
在CustomerBK
Customer
上的{{1}}索引中找到该行后,该行会消失,而SQL Server会在同一个表上查找聚簇索引中的相应PK。这表明存在某种腐败现象。也许NCI与CI相比还有一行,或者某种方式存储在NCI中的PK值无效。